成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

實現(xiàn)定時任務(wù)的六種策略

開發(fā) 前端
ScheduleExecutorService 因其簡單易用且性能優(yōu)異,在各大開源中間件項目(比如 RocketMQ、MetaQ、Canal 等)中被廣泛的使用。

這篇文章,我們聊聊實現(xiàn)定時任務(wù)的六種策略。

圖片圖片

1 自定義單線程

圖片圖片

上圖中,我們啟動一個線程,該線程無限循環(huán)執(zhí)行,每隔20毫秒執(zhí)行業(yè)務(wù)代碼。

這種方式非常簡單易用,在很多中間件中得到廣泛應(yīng)用。

2 JDK ScheduledExecutorService

ScheduledExecutorService 是 Java 標(biāo)準(zhǔn)庫提供的一個用于調(diào)度定時任務(wù)的接口。它提供了一種相對簡單的方式來執(zhí)行定時任務(wù),不需要引入額外的庫。

圖片圖片

在上述例子中:

  1. 創(chuàng)建了一個ScheduledExecutorService 實例,它使用了一個線程池,其中包含一個線程用于執(zhí)行定時任務(wù)。
  2. 定義了一個簡單的Runnable任務(wù),輸出當(dāng)前時間。
  3. 使用scheduleAtFixedRate方法安排任務(wù),指定了任務(wù)的啟動延遲時間和執(zhí)行間隔時間。
  4. 主線程等待一段時間,然后關(guān)閉ScheduledExecutorService,確保定時任務(wù)不再執(zhí)行。

這是一個基本的使用例子,你可以根據(jù)需求調(diào)整延遲時間、執(zhí)行間隔、線程池大小等參數(shù)。

ScheduleExecutorService 因其簡單易用且性能優(yōu)異,在各大開源中間件項目(比如 RocketMQ、MetaQ、Canal 等)中被廣泛的使用。

3 Spring Task

在Spring框架中,你可以使用@Scheduled注解來創(chuàng)建定時任務(wù)。以下是Spring定時任務(wù)的基本用法:

  1. 配置類: 創(chuàng)建一個配置類,通常使用 @EnableScheduling 注解啟用 Spring 的定時任務(wù)功能。

圖片圖片

  1. 定時任務(wù)方法: 在你的服務(wù)類或組件類中創(chuàng)建一個方法,并使用 @Scheduled 注解來指定定時任務(wù)的觸發(fā)條件。

圖片圖片

在上述例子中,@Scheduled 注解允許你指定定時任務(wù)的執(zhí)行規(guī)則,可以是固定頻率(fixedRate)、固定延遲(fixedDelay)、或者使用cron表達(dá)式。

4 Quartz

Quartz是一款 Java 開源任務(wù)調(diào)度框架。

圖片圖片

下面我們展示如何使用:

1、添加依賴

圖片圖片

2、Job(任務(wù):你要做什么事)

圖片圖片

3、Trigger(觸發(fā)器:什么時候去做)

4、scheduler(任務(wù)調(diào)度:你什么時候需要做什么事)將 job 與 Trigger 進(jìn)行整合。

下面是一個例子:

圖片圖片

這里需要強(qiáng)調(diào)的是,Quartz 支持集群模式,持久化方式是 JDBC ,需要創(chuàng)建如下表。

圖片圖片

Quartz 集群模式對于業(yè)務(wù)數(shù)據(jù)庫有侵入性,需要考慮業(yè)務(wù)場景慎重使用。

5 elastic-job

ElasticJob 定位為輕量級無中心化解決方案,使用 jar 的形式提供分布式任務(wù)的協(xié)調(diào)服務(wù)。

圖片圖片

應(yīng)用內(nèi)部定義任務(wù)類,實現(xiàn) SimpleJob 接口,編寫自己任務(wù)的實際業(yè)務(wù)流程即可。

圖片圖片

舉例:應(yīng)用A有五個任務(wù)需要執(zhí)行,分別是A,B,C,D,E。任務(wù)E需要分成四個子任務(wù),應(yīng)用部署在兩臺機(jī)器上。

圖片圖片

應(yīng)用A在啟動后, 5個任務(wù)通過 Zookeeper 協(xié)調(diào)后被分配到兩臺機(jī)器上,通過Quartz Scheduler 分開執(zhí)行不同的任務(wù)。

ElasticJob 從本質(zhì)上來講 ,底層任務(wù)調(diào)度還是通過 Quartz ,相比Redis分布式鎖 或者 Quartz 分布式部署 ,它的優(yōu)勢在于可以依賴 Zookeeper 這個大殺器 ,將任務(wù)通過負(fù)載均衡算法分配給應(yīng)用內(nèi)的 Quartz Scheduler容器。

6 xxl-job

XXL-JOB 是一個使用最廣泛的分布式任務(wù)調(diào)度平臺。

業(yè)務(wù)系統(tǒng)和調(diào)度平臺分開部署,我們在調(diào)度平臺上配置應(yīng)用以及其定時任務(wù),當(dāng)任務(wù)需要執(zhí)行時,調(diào)度平臺會觸發(fā)業(yè)務(wù)系統(tǒng)的任務(wù),業(yè)務(wù)系統(tǒng)執(zhí)行完任務(wù)之后,反饋給調(diào)度平臺任務(wù)執(zhí)行的結(jié)果。

接下來,我們使用 xxl-job 開發(fā)第一個任務(wù) “Hello World”。

1、新建任務(wù):

登錄調(diào)度中心,點(diǎn)擊下圖所示“新建任務(wù)”按鈕,新建示例任務(wù)。然后,參考下面截圖中任務(wù)的參數(shù)配置,點(diǎn)擊保存。

圖片圖片

圖片圖片

2、應(yīng)用任務(wù)開發(fā)

圖片圖片

3、觸發(fā)執(zhí)行

請點(diǎn)擊任務(wù)右側(cè) “執(zhí)行” 按鈕,可手動觸發(fā)一次任務(wù)執(zhí)行(通常情況下,通過配置Cron表達(dá)式進(jìn)行任務(wù)調(diào)度觸發(fā))。

4、查看日志

請點(diǎn)擊任務(wù)右側(cè) “日志” 按鈕,可前往任務(wù)日志界面查看任務(wù)日志。在任務(wù)日志界面中,可查看該任務(wù)的歷史調(diào)度記錄以及每一次調(diào)度的任務(wù)調(diào)度信息、執(zhí)行參數(shù)和執(zhí)行信息。

運(yùn)行中的任務(wù)點(diǎn)擊右側(cè)的“執(zhí)行日志”按鈕,可進(jìn)入日志控制臺查看實時執(zhí)行日志。

圖片圖片

7 寫到最后

本文整理了實現(xiàn)定時任務(wù)的六種策略,我們需要根據(jù)實際場景選擇合適的策略。

同時,我們也需要考慮:

  1. 是否需要任務(wù)應(yīng)用集群部署;
  2. 集群部署下假如出現(xiàn)并發(fā)執(zhí)行,業(yè)務(wù)是否會出現(xiàn)異常;
  3. 如何規(guī)避并發(fā)執(zhí)行導(dǎo)致的業(yè)務(wù)異常。
責(zé)任編輯:武曉燕 來源: 勇哥Java實戰(zhàn)
相關(guān)推薦

2024-02-26 11:12:33

定時任務(wù)線程

2021-11-22 12:35:40

Python命令定時任務(wù)

2024-01-31 08:38:57

Python定時任務(wù)函數(shù)

2022-06-01 23:30:04

漏洞網(wǎng)絡(luò)安全移動攻擊

2024-11-11 06:20:00

緩存開發(fā)

2011-03-31 14:53:13

數(shù)據(jù)中心節(jié)能

2025-03-12 09:54:02

2021-12-10 13:08:31

數(shù)據(jù)倉庫BI數(shù)據(jù)存儲

2024-11-20 15:24:49

2021-06-30 07:19:34

SpringBoot定時任務(wù)

2023-08-29 13:53:00

前端攔截HashMap

2022-05-24 10:43:02

延時消息分布式MQ

2023-12-19 08:09:06

Python定時任務(wù)Cron表達(dá)式

2021-08-05 07:28:25

Java實現(xiàn)方式

2022-12-13 10:05:27

定時任務(wù)任務(wù)調(diào)度操作系統(tǒng)

2024-11-04 16:01:01

2020-12-21 07:31:23

實現(xiàn)單機(jī)JDK

2024-12-27 08:24:55

2021-09-26 09:17:01

Python命令定時任務(wù)

2019-09-12 09:22:58

Nginx負(fù)載均衡服務(wù)器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 中国av在线免费观看 | 国产乡下妇女做爰 | 日韩精品一区二区三区在线观看 | 国产免费av网| a级网站| 永久www成人看片 | 成人午夜影院 | 日韩av在线一区 | 中文字幕在线免费 | 在线观看国产www | 中文字幕在线一区二区三区 | 日韩国产在线 | 本道综合精品 | 日本精品视频在线 | 欧美大片一区二区 | 国产精品久久久久久吹潮 | 国产网站在线播放 | 看av片网站 | 国产免费观看久久黄av片涩av | 欧美成人高清 | 国产亚洲精品综合一区 | 夜夜爽99久久国产综合精品女不卡 | 国产黄色免费网站 | 久久男人天堂 | 国产精品一区免费 | 成人国产精品入口免费视频 | 亚洲一二三区精品 | 国产精品久久久久久久久久软件 | 国产91观看 | 亚洲精品91 | 国产精品一区二区视频 | 久久精品99久久 | 九九热re | 久久久久九九九女人毛片 | 免费观看一级毛片 | 综合久久综合久久 | 欧美久久精品 | 国产一级特黄aaa大片评分 | 欧美中国少妇xxx性高请视频 | 亚洲精品视频在线看 | 国产精品视频综合 |