0
点赞
收藏
分享

微信扫一扫

@Scheduled 多个定时任务同时执行


这篇文章主要介绍了springBoot @Scheduled实现多个任务同时开始执行,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

@Scheduled 多个定时任务同时执行

1、定时任务是单线程运行的

定时任务是单线程执行的,默认一个时间段只能执行一个定时任务

如果多个定时任务同时执行的话,那么会按照顺序执行

2、多线程开启定时任务

创建线程池,且注入到spring 中,

@EnableScheduling 定时任务扫描,开始定时任务计划支持




@Service
@Component
@EnableScheduling
public class SendMsgNoticeServiceTimer {
private static final Logger logger = LoggerFactory.getLogger(SendMsgNoticeServiceTimer.class);

@Autowired
private NySendMsg nySendMsg;

//创建定时任务线程池
@Bean
public TaskScheduler taskScheduler() {
ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
taskScheduler.setPoolSize(64);
return taskScheduler;
}

@Scheduled(cron="0 0 10 * * ?")
public void sendPaymentNotice() {
logger.info("***-sendPaymentNotice--定时任务每天凌晨10点执行一次---***");

SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
String endDate = sf.format(new Date());
JSONObject obj = sendTradingFeeChoosed(String.valueOf(1));
logger.info("***---定时任务" + endDate + ":系统自动发送" + obj.size() + "条短信提醒---***");

}

@Scheduled(cron="0 0 10 * * ?")
public void sendLateRemind() {
logger.info("***--sendLateRemind---定时任务每天凌晨10点执行一次---***");

SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
String endDate = sf.format(new Date());
JSONObject obj = sendTradingFeeChoosed(String.valueOf(2));
logger.info("***---定时任务" + endDate + ":系统自动发送" + obj.size() + "条短信提醒---***");

}


举报

相关推荐

0 条评论