背景:
公司的老系統用戶反饋,短信發送異常……
檢查發現是批量短信接口超時,前端直接拋異常了,改爲異步發送……
@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爲自定義的線程池(優雅的線程池)
接收到發送結果後同步短信剩餘條數。