private ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(30,60,60,
TimeUnit.SECONDS,new LinkedBlockingDeque<>(20000), (r, executor) -> {
log.error("syncLxUserThreadPool-full:active[{}],queue:[{}]",executor.getActiveCount(),executor.getQueue().size());
});
@Configuration
public class TaskPoolExecutor {
@Bean("noteTaskExecutor")
public ThreadPoolTaskExecutor educationTaskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(10);
executor.setMaxPoolSize(25);
executor.setQueueCapacity(10000);
executor.setThreadNamePrefix("note-executor-");
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
executor.setKeepAliveSeconds(60);
executor.initialize();
return executor;
}
}
Service:
@Autowired
@Qualifier("noteTaskExecutor")
private ThreadPoolTaskExecutor noteTaskExecutor;
noteTaskExecutor.execute(() -> {
try {
NoteMineHasMessageVO noteMineHasMessageVO = noteMineService.hasMessage(orgId, userId);
if (noteMineHasMessageVO.getResult()) {
NewsMsg newsMsg = new NewsMsg();
NewsMsg.Article article = new NewsMsg.Article();
article.setTitle("您有未查看的点赞评论互动信息");
article.setUrl(remindMessageUrl);
newsMsg.addArticle(article);
String message = wechatMsgSendService.sendMsgByXyhUserId(orgId, String.valueOf(NoteConstant.FROM_APP), userId, newsMsg);
log.info("发送消息提醒,学校组织id:{},用户id:{},消息返回:{}", orgId, userId, message);
}
}catch (Exception e){
log.error("发送消息提醒失败,学校组织id:{},用户id:{}", orgId, userId, e);
}
});