背景:
公司的老系统用户反馈,短信发送异常……
检查发现是批量短信接口超时,前端直接抛异常了,改为异步发送……
@Autowired private ThreadPoolTaskExecutor executor; // mobileMessageReadService.batchSend(messages); // store.setSmsCount(smsCount - messages.size()); // storeWriteService.update(store); // 批量超时,改为异步 CompletableFuture<Boolean> future = CompletableFuture.supplyAsync(() -> mobileMessageReadService.batchSend(messages), executor); future.whenComplete((r, e) -> { if (r) { store.setSmsCount(smsCount - messages.size()); storeWriteService.update(store); } });
ThreadPoolTaskExecutor为自定义的线程池(优雅的线程池)
接收到发送结果后同步短信剩余条数。