背景:
公司的老系统用户反馈,短信发送异常……
检查发现是批量短信接口超时,前端直接抛异常了,改为异步发送……
@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为自定义的线程池(优雅的线程池)
接收到发送结果后同步短信剩余条数。