国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - spring boot task實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建定時(shí)任務(wù)的方法

spring boot task實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建定時(shí)任務(wù)的方法

2021-07-10 11:06centychen Java教程

這篇文章主要介紹了spring boot task實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建定時(shí)任務(wù),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

在spring boot項(xiàng)目中,通過(guò)@enablescheduling可啟用spring自帶的定時(shí)任務(wù)支持,在通過(guò)@scheduled注解定義定時(shí)任務(wù),但是通過(guò)注解只能編寫固定時(shí)間的定時(shí)任務(wù),無(wú)法動(dòng)態(tài)調(diào)整定時(shí)間隔,可通過(guò)實(shí)現(xiàn)schedulingconfigurer接口實(shí)現(xiàn)動(dòng)態(tài)定時(shí)任務(wù)注冊(cè)。

對(duì)比quartz的優(yōu)缺點(diǎn)

優(yōu)點(diǎn):配置非常簡(jiǎn)單
缺點(diǎn):

  • 不支持分布式部署
  • 不支持動(dòng)態(tài)配置定時(shí)任務(wù)
  • 不支持持久化

其實(shí)這幾個(gè)缺點(diǎn)歸根結(jié)底都是因?yàn)椴恢С殖志没匀绻?xiàng)目需要持久化定時(shí)任務(wù),還是要選擇quartz比較好。

參考代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package org.cent.demo.scanner.schedule;
 
import lombok.allargsconstructor;
import lombok.data;
import lombok.extern.slf4j.slf4j;
import org.springframework.context.annotation.configuration;
import org.springframework.scheduling.trigger;
import org.springframework.scheduling.annotation.enablescheduling;
import org.springframework.scheduling.annotation.schedulingconfigurer;
import org.springframework.scheduling.config.scheduledtaskregistrar;
import org.springframework.scheduling.support.crontrigger;
 
import java.util.arrays;
import java.util.list;
 
/**
 * @author: cent
 * @email: 292462859@qq.com
 * @date: 2019/1/16.
 * @description:
 */
@configuration
@enablescheduling
@slf4j
public class dynamicschedule implements schedulingconfigurer {
 
 /**
 * 測(cè)試數(shù)據(jù),實(shí)際可從數(shù)據(jù)庫(kù)獲取
 */
 private list<task> tasks = arrays.aslist(
  new task(1, "任務(wù)1", "*/30 * * * * *"),
  new task(2, "任務(wù)2", "*/30 * * * * *"),
  new task(3, "任務(wù)3", "*/30 * * * * *"),
  new task(4, "任務(wù)4", "*/30 * * * * *"),
  new task(5, "任務(wù)5", "*/30 * * * * *"),
  new task(6, "任務(wù)6", "*/30 * * * * *"),
  new task(7, "任務(wù)7", "*/30 * * * * *"),
  new task(8, "任務(wù)8", "*/30 * * * * *"),
  new task(9, "任務(wù)9", "*/30 * * * * *"),
  new task(10, "任務(wù)10", "*/30 * * * * *")
 );
 
 @override
 public void configuretasks(scheduledtaskregistrar scheduledtaskregistrar) {
 tasks.foreach(task -> {
  //任務(wù)執(zhí)行線程
  runnable runnable = () -> log.info("execute task {}", task.getid());
 
  //任務(wù)觸發(fā)器
  trigger trigger = triggercontext -> {
  //獲取定時(shí)觸發(fā)器,這里可以每次從數(shù)據(jù)庫(kù)獲取最新記錄,更新觸發(fā)器,實(shí)現(xiàn)定時(shí)間隔的動(dòng)態(tài)調(diào)整
  crontrigger crontrigger = new crontrigger(task.getcron());
  return crontrigger.nextexecutiontime(triggercontext);
  };
 
  //注冊(cè)任務(wù)
  scheduledtaskregistrar.addtriggertask(runnable, trigger);
 });
 
 }
 
 @data
 @allargsconstructor
 static class task {
 /**
  * 主鍵id
  */
 private int id;
 /**
  * 任務(wù)名稱
  */
 private string name;
 /**
  * cron表達(dá)式
  */
 private string cron;
 }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://www.jianshu.com/p/546631cc2b8f

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产欧美日韩综合精品 | av网站推荐 | 亚洲三区在线观看 | 日本99精品| av在线一区二区 | 国产1级片 | 自拍偷拍第一页 | 亚洲黄色激情 | 性色国产 | 亚洲一区二区av | 亚洲国产一区二区在线观看 | 一区二区在线 | 久久美女视频 | 日韩欧美一区二区中文字幕 | 天堂一区| 亚洲欧美国产日韩综合 | 男人午夜天堂 | 成人高清视频在线观看 | 免费的av | 久久精品亚洲精品国产欧美 | 亚洲一区二区免费视频 | 国产精品第一页在线 | 亚洲成a人v欧美综合天堂麻豆 | 色接久久 | 日本一区二区在线视频 | 日韩欧美在线视频 | 天天射影院| 久久99深爱久久99精品 | 国产亚洲精品美女久久久久久久久久 | av片在线观看 | 亚洲视频一区二区三区 | 国产精品爱久久久久久久 | 亚洲成人精品在线观看 | 夜夜爽99久久国产综合精品女不卡 | 精品国产视频 | 国产在线观看一区二区三区 | 97国产精品 | 一区二区三区高清 | 久久久av| 国产欧美日韩三级 | 黄色在线 |