@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() + "条短信提醒---***");
    }



目录
相关文章
|
7月前
|
资源调度 Java
在SchedulerX中,你可以使用`schedulerx.submitTask(taskName)`方法来提交并执行单个任务
【1月更文挑战第7天】【1月更文挑战第34篇】在SchedulerX中,你可以使用`schedulerx.submitTask(taskName)`方法来提交并执行单个任务
69 1
|
6月前
|
Java 调度 Spring
是否可以实现动态的@Scheduled(cron = "0 0 0 * * *")
【6月更文挑战第12天】是否可以实现动态的@Scheduled(cron = "0 0 0 * * *")
270 5
|
7月前
|
Java 调度 Python
解决方案:APScheduler定时任务不执行,报错Run time of job ... was missed by ...
解决方案:APScheduler定时任务不执行,报错Run time of job ... was missed by ...
856 0
解决方案:APScheduler定时任务不执行,报错Run time of job ... was missed by ...
|
Java 调度
@Scheduled阻塞导致未执行生效
@Scheduled阻塞导致未执行生效
167 0
|
NoSQL Redis
@Scheduled的使用
@Scheduled的使用
57 0
springboot计划任务@EnableScheduling和@Scheduled
springboot计划任务@EnableScheduling和@Scheduled
106 0
|
Java Spring
Spring @Scheduled(fixedRate = 120000) 和 @Scheduled(cron = "*/5 * * * * ?")的区别?
Spring @Scheduled(fixedRate = 120000) 和 @Scheduled(cron = "*/5 * * * * ?")的区别?
249 0
|
缓存 NoSQL Java
SpringBoot定时任务@Scheduled的多线程使用
@Scheduled是Spring框架中的一个注解,它可以用于配置定时任务,使得方法可以按照规定的时间间隔定时执行。在使用该注解时,我们可以指定任务的执行时间、循环周期、并发数等参数,从而实现定时任务的功能。在Spring Boot中,@Scheduled注解可以直接应用于方法上。
456 0
|
Java Spring
spring定时任务cron表达式(@Scheduled)
spring定时任务cron表达式(@Scheduled)
245 0
|
Java API 调度
多线程实现Spring定时任务@Scheduled
多线程实现Spring定时任务@Scheduled