scheduledtask(SpringBoot几种定时任务的实现方式)
本文目录
SpringBoot几种定时任务的实现方式
第一种比较简单
第二种
@SpringBootApplication/** 开启对定时任务的支持* 在相应的方法上添加@Scheduled声明需要执行的定时任务。*/@EnableSchedulingpublic class Application {public static void main(String args) {SpringApplication.run(Application.class, args);}}
@SpringBootApplication/** 开启对定时任务的支持* 在相应的方法上添加@Scheduled声明需要执行的定时任务。*/@EnableSchedulingpublic class Application {public static void main(String args) {SpringApplication.run(Application.class, args);}}
/*把普通pojo实例化到spring容器中,相当于配置文件中的《bean id=““ class=““/》若想动态改变其值需要继承SchedulingConfigurer*/public class AutoSchedule implements SchedulingConfigurer{private static final SimpleDateFormat dateFormat = new SimpleDateFormat(“HH:mm:ss“);private static final String DEFAULT_CRON = “0/5 * * * * ?“;private String cron = DEFAULT_CRON;@Overridepublic void configureTasks(ScheduledTaskRegistrar taskRegistrar) {// Runnable(线程接口类) 和CronTrigger(定时任务触发器)taskRegistrar.addTriggerTask(() -》 {// 定时任务的业务逻辑System.out.println(“动态修改定时任务cron参数,当前时间:“ + dateFormat.format(new Date()));}, (triggerContext) -》 {// 定时任务触发,可修改定时任务的执行周期CronTrigger trigger = new CronTrigger(cron);Date nextExecDate = trigger.nextExecutionTime(triggerContext);return nextExecDate;});}public void setCron(String cron) {System.out.println(“当前cron=“+this.cron+“-》将被改变为:“+cron);this.cron = cron;}}
第三种
@RestController@Componentpublic class CrudSchelud {//用threadPoolTaskScheduler 类实现对任务的定时调度功能,//重写CronTrigger触发器,任务却被不断调用3@Autowiredprivate ThreadPoolTaskScheduler threadPoolTaskScheduler;private ScheduledFuture《?》 future;@Beanpublic ThreadPoolTaskScheduler threadPoolTaskScheduler() {return new ThreadPoolTaskScheduler();}@RequestMapping(“/startCron“)public String startCron() {future = threadPoolTaskScheduler.schedule(new MyRunnable(), new CronTrigger(“0/5 * * * * *“));System.out.println(“DynamicTask.startCron()“);return “startCron“;}@RequestMapping(“/stopCron“)public String stopCron() {if (future != null) {future.cancel(true);}System.out.println(“DynamicTask.stopCron()“);return “stopCron“;}@RequestMapping(“/changeCron10“)public String startCron10() {stopCron();// 先停止,在开启.future = threadPoolTaskScheduler.schedule(new MyRunnable(), new CronTrigger(“*/10 * * * * *“));System.out.println(“DynamicTask.startCron10()“);return “changeCron10“;}private class MyRunnable implements Runnable {@Overridepublic void run() {System.out.println(“DynamicTask.MyRunnable.run(),“ + new Date());}}}
spring自动任务task:scheduled执行一段时间后不执行了
楼主说下你的具体需求吧,你要实现在什么时候进行调度? 你每3分钟循环一次的话,你把间隔时间设置长一些,会不会出现这次在执行的时候,上一次的还没有执行完呢,另外用debug模式跟踪下就知道了!
更多文章:
java文本编辑器(现在企业的java开发工具用得最多是eclipse还是idea,这两者的区别又是什么)
2024年6月16日 20:07
android模拟器下载(windows8怎么安装apk文件)
2024年5月18日 03:10
在线新华字典部首查字(有谁能教我新华字典怎么用部首查字法查字)
2024年6月21日 02:05
nba2k21下载安卓版(在哪里可以下载NBA2k21安卓手机中文版)
2024年6月30日 06:55
下载植物大战僵尸1原版(植物大战僵尸1老版本如何下载安装到手机)
2024年8月20日 13:56
哭嚎荒漠路线(英雄联盟LOL中荒漠屠夫的出装的顺序以及打法,路线,走位!求那位用的出神的大神来说说下!不要复制的!)
2024年7月16日 11:44
yy变声器怎么用(YY变声器怎么用啊(男变女的) 最好可以长期用的)
2024年6月18日 08:05
武林外传变态私服(武林外传怎么做私服 都需要改哪些文件 然后怎么以 GM的身份进入麻烦讲详细点)
2024年6月8日 06:44
中国式结婚典礼基本上消失在中国人的婚礼上,这算是进步吗?中国现代婚礼和西式婚礼有什么区别
2024年6月20日 15:26
免费教育资源(338所知名高校课程资源免费开放,这会带来哪些积极影响)
2023年7月21日 23:40
《答案网》在线使用(答案网搜答案在线搜索方法,免费作业答案网站在线)
2024年8月7日 07:26
使命召唤系列在哪个平台下载(使命召唤2电脑版在哪个平台下载)
2024年7月23日 07:51