日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java定時任務實現(xiàn)的4種方式小結(jié)

瀏覽:20日期:2022-08-23 14:21:49

1. java自帶的Timer

Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() {System.out.println('Time’s up!'); } },3*1000,1000);

2.ScheduledThreadPool-線程池

ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(2); scheduledThreadPool.scheduleAtFixedRate(new Runnable() { @Override public void run() {System.out.println('========================='); } }, 1000, 2000, TimeUnit.MILLISECONDS); scheduledThreadPool.scheduleAtFixedRate(new Runnable() { @Override public void run() {System.out.println(System.currentTimeMillis()+'<><>'+System.nanoTime()); } }, 1000, 2000, TimeUnit.MILLISECONDS);

3.使用注解的形式:@Scheduled

@Componentpublic class SpringScheduled { @Scheduled(initialDelay = 2000,fixedDelay = 5000) public void doSomething() { System.out.println('Spring自帶的Scheduled執(zhí)行了======================='); }} //下面是開啟@SpringBootApplication@EnableSchedulingpublic class DemoApplication { public static void main(String[] args) throws InterruptedException { SpringApplication application = new SpringApplication(DemoApplication.class); application.addListeners(new ContextRefreshedEventListener()); application.run(args); }}

4.使用Quartz定時任務調(diào)度器

配置

@Configurationpublic class QuartzConfig { @Resource private ScheduleTask scheduleTask; /** * 配置定時任務1 * @return */ @Bean(name='firstJobDetail') public MethodInvokingJobDetailFactoryBean firstJobDetail(){ MethodInvokingJobDetailFactoryBean method = new MethodInvokingJobDetailFactoryBean(); // 為需要執(zhí)行的實體類對應的對象 method.setTargetObject(scheduleTask); // 需要執(zhí)行的方法 method.setTargetMethod('test'); // 是否并發(fā)執(zhí)行 method.setConcurrent(false); return method; } /** * 配置觸發(fā)器1 * @param firstJobDetail * @return */ @Bean(name='firstTrigger') public SimpleTriggerFactoryBean firstTrigger(JobDetail firstJobDetail){ SimpleTriggerFactoryBean simpleBean = new SimpleTriggerFactoryBean(); simpleBean.setJobDetail(firstJobDetail); // 設置任務啟動延遲 simpleBean.setStartDelay(1000); // 每1秒執(zhí)行一次 simpleBean.setRepeatInterval(1000); //設置重復計數(shù) //simpleBean.setRepeatCount(0); return simpleBean; } /** * 配置Scheduler */ @Bean(name = 'scheduler') public SchedulerFactoryBean schedulerFactoryBean(Trigger firstTrigger){ SchedulerFactoryBean factoryBean = new SchedulerFactoryBean(); factoryBean.setTriggers(firstTrigger); return factoryBean; } }

要執(zhí)行的任務

@Componentpublic class ScheduleTask { public void test() { System.out.println('===================================='); } }

總結(jié):

還有其他方式可以實現(xiàn)定時任務的方式,可以貼出來,討論討

補充知識:SpringBoot定時任務簡單使用和自定義開啟關閉修改周期

一、簡單使用

1.pom加入基本springboot基本的starter即可

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency>

2.@Scheduled 參數(shù)可以接受兩種定時的設置,一種是我們常用的cron='*/6 * * * * ?',一種是 fixedRate = 6000,兩種都表示每隔六秒打印一下內(nèi)容。

fixedRate 說明

@Scheduled(fixedRate = 6000) :上一次開始執(zhí)行時間點之后6秒再執(zhí)行

@Scheduled(fixedDelay = 6000) :上一次執(zhí)行完畢時間點之后6秒再執(zhí)行

@Scheduled(initialDelay=1000, fixedRate=6000) :第一次延遲1秒后執(zhí)行,之后按fixedRate的規(guī)則每6秒執(zhí)行一次

@Componentpublic class TimingTask { private static final SimpleDateFormat dateFormat = new SimpleDateFormat('HH:mm:ss'); @Scheduled(cron='*/6 * * * * ?') private void process(){ System.out.println('this is scheduler task runing '+new Date()); } @Scheduled(fixedRate = 6000) public void reportCurrentTime() { System.out.println('現(xiàn)在時間:' + dateFormat.format(new Date())); }}

3.啟動類加上@EnableScheduling注解。

@SpringBootApplication(exclude = MongoAutoConfiguration.class)@EnableSchedulingpublic class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }

4.運行結(jié)果

this is scheduler task runing Thu Jul 18 10:59:06 CST 2019現(xiàn)在時間:10:59:10this is scheduler task runing Thu Jul 18 10:59:12 CST 2019現(xiàn)在時間:10:59:16this is scheduler task runing Thu Jul 18 10:59:18 CST 2019現(xiàn)在時間:10:59:22this is scheduler task runing Thu Jul 18 10:59:24 CST 2019現(xiàn)在時間:10:59:28

以上就是定時任務的簡單使用。但是有時候,定時任務需要關閉,和開啟,或者修改定時任務的運行周期,可以使用下面的方式實現(xiàn).

二、高級使用,自定義定時任務,關閉,開啟,修改周期

1.說明

ThreadPoolTaskScheduler:線程池任務調(diào)度類,能夠開啟線程池進行任務調(diào)度。

ThreadPoolTaskScheduler.schedule()方法會創(chuàng)建一個定時計劃ScheduledFuture,在這個方法需要添加兩個參數(shù),Runnable(線程接口類) 和CronTrigger(定時任務觸發(fā)器)

在ScheduledFuture中有一個cancel可以停止定時任務。

@RestController@RequestMapping('/time')public class DynamicScheduledTask { private static String DEFAULT_CRON = '0/5 * * * * ?'; @Autowired private ThreadPoolTaskScheduler threadPoolTaskScheduler; private ScheduledFuture<?> future; @Bean public ThreadPoolTaskScheduler threadPoolTaskScheduler() { return new ThreadPoolTaskScheduler(); } @RequestMapping('/{id}/startCron') public String startCron(@PathVariable('id') String id) { future = threadPoolTaskScheduler.schedule(new MyRunnable(), new CronTrigger(DEFAULT_CRON)); System.out.println('DynamicTask.startCron()'+'------'+id); return 'startCron'; } @RequestMapping('/{id}/stopCron') public String stopCron(@PathVariable('id') String id) { if (future != null) { future.cancel(true); } System.out.println('DynamicTask.stopCron()'+'------'+id); return 'stopCron'; } @RequestMapping('/{id}/changeCron10') public String startCron10(@PathVariable('id') String id) { stopCron(id);// 先停止,在開啟. future = threadPoolTaskScheduler.schedule(new MyRunnable(), new CronTrigger('*/10 * * * * *')); System.out.println('DynamicTask.startCron10()'+'------'+id); return 'changeCron10'; } private class MyRunnable implements Runnable { @Override public void run() { System.out.println('DynamicTask.MyRunnable.run(),' + new Date()); } }}

如果想,做成后臺管理,添加刪除定時任務,可以將定時任務,持久化到數(shù)據(jù)庫,自定義開發(fā)MyRunnable定時任務的業(yè)務類,也持久化到數(shù)據(jù)庫,然后,threadPoolTaskScheduler.schedule要的業(yè)務類,可通過反射實例化出來,傳遞,然后,通過url,id參數(shù),來開啟,關閉,刪除,對應的定時任務。

以上這篇java定時任務實現(xiàn)的4種方式小結(jié)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
免费看日韩精品| 五月亚洲婷婷 | 欧美日韩免费观看视频| 日韩一区二区三区免费播放| 色黄视频在线观看| 日韩欧美三级| 老司机精品久久| 日本中文字幕一区二区视频| 在线观看一区| 欧美日韩一区二区三区四区在线观看| 久久国内精品| 久久久一本精品| 中文字幕日韩高清在线| 欧美亚洲免费| 99久久亚洲精品蜜臀| 中文一区二区| 麻豆精品99| 亚洲欧美一区在线| 国产午夜一区| 亚洲不卡av不卡一区二区| 日韩中文字幕一区二区三区| 国产欧美日韩影院| 伊人久久成人| 久久精品伊人| 亚洲一区二区三区高清不卡| 美女在线视频一区| 欧美69视频| 麻豆一区二区三区| 一区二区精品| 久久国产免费| 国产日韩一区二区三免费高清 | 99久久视频| 欧美精品1区| 亚洲欧洲美洲国产香蕉| 91精品综合| 美女视频一区在线观看| 亚洲精品日本| 免费的成人av| 午夜国产精品视频| 国产传媒av在线| 国产精品宾馆| 日韩影片在线观看| 狠狠色综合网| 超碰在线99| 国产精品mv在线观看| 亚洲精品少妇| 日韩影院精彩在线| 国产亚洲欧洲| 国产欧美一区二区三区国产幕精品 | 国产免费播放一区二区| 亚洲一级大片| 精品香蕉视频| 国产欧美一级| 国产欧美日韩免费观看| 亚洲影视一区二区三区| 色综合www| xxxxx性欧美特大| а√天堂8资源中文在线| 麻豆传媒一区二区三区| 国产欧美日韩一区二区三区四区| 亚洲精品一级| 国产亚洲电影| 麻豆精品在线播放| 美女久久99| 日韩在线视频精品| 成人看片网站| 欧美另类专区| 中文字幕亚洲影视| 欧美久久亚洲| 国产一区精品福利| 国产伦久视频在线观看| 九九九精品视频| 国产一区二区三区亚洲| 日韩毛片在线| 99在线|亚洲一区二区| 免费在线成人网| 久久国产日韩欧美精品| 久久99久久久精品欧美| 国产91在线播放精品| 久久青草久久| 亚洲毛片在线| 国产在线观看www| 亚洲免费精品| 国产精品亚洲一区二区在线观看| 97精品一区二区| 欧美日韩免费观看一区=区三区| 中文无码久久精品| 国产aa精品| 蜜臀a∨国产成人精品| 老司机免费视频一区二区三区| 久久精品主播| 国产亚洲欧美日韩精品一区二区三区 | 国产精品**亚洲精品| 午夜av不卡| 亚洲精选成人| 久久婷婷一区| 国产剧情一区| 99综合视频| 亚洲天堂免费电影| 国产精品视频首页| 麻豆精品网站| 欧美日韩视频免费观看| 91精品日本| 国产精品日本| 久久电影tv| 久久国产精品免费一区二区三区 | 丝瓜av网站精品一区二区| 国产不卡av一区二区| 亚洲69av| 蜜桃久久久久久| 欧美一区三区| 天堂中文在线播放| 欧美日一区二区在线观看| 韩日一区二区三区| 成人亚洲一区| 国产精品a级| 日韩午夜电影| 欧洲精品一区二区三区| 久久久久黄色| 欧美日韩一区二区三区在线电影| 亚洲精品97| 在线一区免费| 99久久夜色精品国产亚洲1000部| 欧美成a人片免费观看久久五月天| 亚洲精品韩国| 亚洲乱亚洲高清| 石原莉奈在线亚洲二区| 欧美性感美女一区二区| 欧美二三四区| 国产99在线| 欧美少妇精品| 色婷婷综合网| 日韩av片子| 丝袜av一区| av中文资源在线资源免费观看| 欧美激情日韩| 日韩成人免费| 日韩成人高清| 久久天堂av| 中文国产一区| 日本成人在线网站| 国产日产一区| 精品国产乱码久久久久久1区2匹| 国产精品主播在线观看| 国产欧美日韩影院| 久久av偷拍| 精品日本视频| 九九精品调教| 免费观看不卡av| 蜜桃视频一区二区三区| 欧美日韩 国产精品| 麻豆精品在线| 亚洲福利国产| 亚洲精品三级| 精品久久久久中文字幕小说| 电影亚洲精品噜噜在线观看 | 日韩中文av| 国产一区日韩| 性色av一区二区怡红| 日韩精品视频在线看| 国产精品videossex久久发布 | 都市激情国产精品| 欧美专区18| 欧美91在线|欧美| 野花国产精品入口| 国产精品.xx视频.xxtv| 亚洲高清不卡| 国产精品久久久久77777丨| 久久精品国内一区二区三区水蜜桃| 中文久久精品| 日韩久久精品| 国产欧美91| 亚洲天堂黄色| 免费在线欧美黄色| 蜜桃av一区二区| аⅴ资源天堂资源库在线| 中文字幕日韩高清在线| 999精品一区| 国产精品国产三级国产在线观看| 久久一二三区| 欧美成人综合| 日韩欧美精品一区| 国产精品www994| 婷婷综合福利| 蜜桃av一区二区| 国产精品88久久久久久| 精品99在线| 亚洲三级av| 激情91久久| 欧美日韩国产高清电影| 激情国产在线| 水蜜桃久久夜色精品一区| 国产精品视频一区二区三区综合| 日韩中文字幕一区二区三区| 国产伊人精品| 欧美午夜精彩| 美女久久久久| 91久久久久| 蜜桃视频免费观看一区| 亚洲一区国产|