Java @Scheduled定时器用法解析

网友投稿 431 2022-07-29


目录@Scheduled定时器用法@Scheduled的几种使用方式两个方法串行执行两个方法并行,且自己也并行两个方法并行,且自己串行

@Scheduled定时器用法

程序中若需要在某个时间循环执行某项任务,就可以使用@Scheduled定时器

源码如下:

@Scheduled(cron="0 0 21 * * ?") //每天晚上九点执行一次 21点

public void taskCycle() throws Exception{

System.out.println("############定时校验代金券过期任务开始执行");

}

@Scheduled(cron="0 0 21 * * ?")

配置完整格式为: [秒] [分] [小时] [日] [月] [周] [年]

其中每个元素 可以是一个值(如6),

一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5), 通配符。

由于"月份中的日期"和"星期中的日期"这两个元http://素互斥的,必须要对其中一个设置?.

0 0 10,14,16 * * ?每天上午10点,下午2点,4点0 0/30 9-17 * * ?朝九晚五工作时间内每半小时0 0 12 ? *WED 表示每个星期三中午12点“0 0 12 * * ?”每天中午12点触发“0 15 10 ? * *”每天上午10:15触发“0 15 10 * * ?”每天上午10:15触发“0 15 10 * * ? *”每天上午10:15触发“0 15 10 * * ? 2005”2005年的每天上午10:15触发“0 * 14 * * ?”在每天下午2点到下午2:59期间的每1分钟触发“0 0/5 14 * * ?”在每天下午2点到下午2:55期间的每5分钟触发"0 “0/5 14,18 * * ?”在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发“0 0-5 14 * * ?”在每天下午2点到下午2:05期间的每1分钟触发“0 10,44 14 ? 3 WED”每年三月CHfkmubf的星期三的下午2:10和2:44触发“0 15 10 ? * MON-FRI”周一至周五的上午10:15触发“0 15 10 15 * ?”每月15日上午10:15触发“0 15 10 L * ?”每月最后一日的上午10:15触发“0 15 10 ? * 6L”每月的最后一个星期五上午10:15触发“0 15 10 ? * 6L 2002-2005”2002年至2005年的每月的最后一个星期五上午10:15触发"0 15 10 ? “* 6#3”每月的第三个星期五上午10:15触发

@Scheduled的几种使用方式

两个方法串行执行

直接在方法上加上@Scheduled注解,

两个方法并行,且自己也并行

添加@EnableAsync和@Async注解

两个方法并行,且自己串行

做如下配置,就可以实现了

@Configuration

@EnableScheduling

public class ScheduleConfig implements SchedulingConfigurer {

@Override

public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {

thttp://askRegistrar.setScheduler(taskExecutor());

}

@Bean(destroyMethod="shutdown")

public Executor taskExecutor() {

return Executors.newScheduledThreadPool(2);

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java实现局域网聊天室功能(私聊、群聊)
下一篇:一文详解Spring Security的基本用法(一文详解土地增值税系列)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~