最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot整合PowerJob實現(xiàn)定時任務(wù)調(diào)度

 更新時間:2024年03月20日 11:33:53   作者:緣不易  
最近項目需要使用定時任務(wù),而使用了PowerJob做任務(wù)調(diào)度模塊,感覺這個框架真香,今天我們就來深入了解一下新一代的定時任務(wù)框架——PowerJob,需要的朋友可以參考下

簡介

PowerJob是基于java開發(fā)的企業(yè)級的分布式任務(wù)調(diào)度平臺,與xxl-job一樣,基于web頁面實現(xiàn)任務(wù)調(diào)度配置與記錄,使用簡單,上手快速,其主要功能特性如下:

  • 使用簡單:提供前端Web界面,允許開發(fā)者可視化地完成調(diào)度任務(wù)的管理(增、刪、改、查)、任務(wù)運行狀態(tài)監(jiān)控和運行日志查看等功能。
  • 定時策略完善:支持 CRON 表達(dá)式、固定頻率、固定延遲和API四種定時調(diào)度策略。
  • 執(zhí)行模式豐富:支持單機、廣播、Map、MapReduce 四種執(zhí)行模式,其中 Map/MapReduce 處理器能使開發(fā)者寥寥數(shù)行代碼便獲得集群分布式計算的能力。
  • 工作流支持:支持在線配置任務(wù)依賴關(guān)系(DAG),以可視化的方式對任務(wù)進(jìn)行編排,同時還支持上下游任務(wù)間的數(shù)據(jù)傳遞,以及多種節(jié)點類型(判斷節(jié)點 & 嵌套工作流節(jié)點)。
  • 執(zhí)行器支持廣泛:支持 Spring Bean、內(nèi)置/外置 Java 類,另外可以通過引入官方提供的依賴包,一鍵集成 Shell、Python、HTTP、SQL 等處理器,應(yīng)用范圍廣。
  • 運維便捷:支持在線日志功能,執(zhí)行器產(chǎn)生的日志可以在前端控制臺頁面實時顯示,降低 debug 成本,極大地提高開發(fā)效率。
  • 依賴精簡:最小僅依賴關(guān)系型數(shù)據(jù)庫(MySQL/PostgreSQL/Oracle/MS SQLServer…)
  • 高可用 & 高性能:調(diào)度服務(wù)器經(jīng)過精心設(shè)計,一改其他調(diào)度框架基于數(shù)據(jù)庫鎖的策略,實現(xiàn)了無鎖化調(diào)度。部署多個調(diào)度服務(wù)器可以同時實現(xiàn)高可用和性能的提升(支持無限的水平擴展)。
  • 故障轉(zhuǎn)移與恢復(fù):任務(wù)執(zhí)行失敗后,可根據(jù)配置的重試策略完成重試,只要執(zhí)行器集群有足夠的計算節(jié)點,任務(wù)就能順利完成。

定時任務(wù)類型

  • 與傳統(tǒng)的定時任務(wù)框架對比,powerJob支持更多的定時任務(wù)類型:
    API: 通過客戶端提供的api接口觸發(fā),服務(wù)端不會主動調(diào)度,適用于與業(yè)務(wù)服務(wù)上下連接或只調(diào)度一次的業(yè)務(wù)場景
  • CRON: 通過cron表達(dá)式調(diào)度,這是多數(shù)定時任務(wù)框架都支持的
  • 固定頻率:每隔多少毫秒執(zhí)行一次。
  • 固定延遲:延遲多少毫秒執(zhí)行一次
  • 工作流:配合工作流進(jìn)行調(diào)度,服務(wù)端不會主動調(diào)度,當(dāng)工作流節(jié)點執(zhí)行到該任務(wù)時運行。

運行

1.然后將powerjob-server/powerjob-server-starter下的application-daily.properties配置文件中的數(shù)據(jù)庫配置改成你服務(wù)器的

其中daily,pre,product 表示日常、預(yù)生產(chǎn)、生產(chǎn)環(huán)境下的配置,與我們常見的dev, test, prod類似,可以根據(jù)需要進(jìn)行調(diào)整

在這里插入圖片描述

2. 我們先來本地運行啟動類PowerJobServerApplication一下試試,啟動成功后,訪問http://localhost:7700,出現(xiàn)登陸頁則說明運行成功

在這里插入圖片描述

3、先注冊一個執(zhí)行器,注意這里的應(yīng)用名稱不能順便取,下文在客戶端的配置的app-name要與該名稱保持一致

4、然后用該執(zhí)行器名和密碼登錄

5、如下,我們就登錄成功了

在這里插入圖片描述

部署 以 jar 包的形式

運行 maven 打jar 包

在這里插入圖片描述

注意,如果這里報錯

在這里插入圖片描述

那么可以將maven的健康檢查關(guān)閉,點擊如圖所示按鈕,并且看到test置灰,則表示關(guān)閉

在這里插入圖片描述

新版idea 可能這樣的

在這里插入圖片描述

執(zhí)行mvn package打包項目

在這里插入圖片描述

在powerjob-server-starter的target目錄下即可看到打包出來的jar,將其上傳到指定服務(wù)器,通過java -jar指令即可運行

在這里插入圖片描述

創(chuàng)建新項目

1、創(chuàng)建一個springboot項目,用于定時任務(wù)客戶端,引入客戶端依賴,如果是spring或其他java項目引入,可參考官網(wǎng)文檔:

<dependency>
    <groupId>tech.powerjob</groupId>
    <artifactId>powerjob-worker-spring-boot-starter</artifactId>
    <version>4.3.2</version>
</dependency>

2、修改配置文件

powerjob:
  worker:
    enabled: true
    enable-test-mode: false
    port: 27777
    app-name: admin # 應(yīng)用名稱,需與PowerJob服務(wù) 注冊的應(yīng)用保持一致
    server-address: 127.0.0.1:7700
    protocol: http
    max-result-length: 4096
    max-lightweight-task-num: 1024
    max-heavy-task-num: 64

3、啟動類上添加注解@EnableScheduling

在這里插入圖片描述

4、通過申明BasicProcessor接口,實現(xiàn)process方法來書寫一個簡單的定時任務(wù)示例類,注意要聲明為bean

在這里插入圖片描述

5、啟動客戶端項目,運行成功后,可以在服務(wù)端首頁看到機器實例

在這里插入圖片描述

6、服務(wù)端任務(wù)管理點擊新建任務(wù)

其中處理器配置是通過書寫處理器的全類路徑名來聲明的,比如我這里是com.example.powerjobdemo.job.SimpleJobServer

在這里插入圖片描述

7、創(chuàng)建成功后,可以在列表看到新建的任務(wù)

在這里插入圖片描述

8、打開客戶端控制臺,也能看到輸出的參數(shù)和執(zhí)行打印,說明任務(wù)執(zhí)行成功

在這里插入圖片描述

9、同時我們可以在運行記錄中看到執(zhí)行日志

在這里插入圖片描述

至此,針對powerjob的最簡單使用就完成了

在這里插入圖片描述

定時信息:

主要選擇定時任務(wù)類型,支持API, CRON,固定頻率、固定延遲、工作流、每日固定間隔等幾種定時任務(wù)類型。

生命周期:

這是比其他任務(wù)框架更便捷的功能,指定了任務(wù)的生效周期,如果該任務(wù)是預(yù)定某時間段內(nèi)執(zhí)行的,可以通過該參數(shù)配置

執(zhí)行配置:

執(zhí)行類型支持單機執(zhí)行、廣播執(zhí)行、Map執(zhí)行、MapReduce執(zhí)行

單機執(zhí)行表示只需要有一個節(jié)點執(zhí)行任務(wù)即可的場景

廣播執(zhí)行表示需要全部節(jié)點一同執(zhí)行的場景,比如清除機器日志、各節(jié)點數(shù)據(jù)統(tǒng)計

Map與MapReduce執(zhí)行都是表示分布式、分批執(zhí)行,用來拆分計算量、耗時較大的任務(wù),區(qū)別在于Map執(zhí)行是一種簡單的數(shù)據(jù)處理邏輯,特點是將輸入數(shù)據(jù)拆分成多個子塊,并交給多個分布式節(jié)點同時執(zhí)行,以提高數(shù)據(jù)處理效率,適用于簡單的數(shù)據(jù)處理場景

MapReduce執(zhí)行是一種大數(shù)據(jù)處理框架,處理邏輯是將復(fù)雜的數(shù)據(jù)處理拆分成Map和Reduce階段進(jìn)行處理,通過數(shù)據(jù)分組計算后合并來提供數(shù)據(jù)處理效率,更適合復(fù)雜的大數(shù)據(jù)場景

運行時配置:

支持HEALTH_FIRST和RANDOM,即第一個健康節(jié)點和隨機,用于選擇執(zhí)行處理器節(jié)點的策略。

最大實例數(shù)用于控制處理器節(jié)點數(shù)量,線程并發(fā)度用于控制并發(fā),運行時間限制

以上就是SpringBoot整合PowerJob實現(xiàn)定時任務(wù)調(diào)度的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot PowerJob任務(wù)調(diào)度的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java線程安全問題的解決方案

    Java線程安全問題的解決方案

    這篇文章主要介紹了Java線程安全問題的解決方案,文章關(guān)于安全的問題的解決方案本文主要分享了三種方法,使用線程安全類,比如?AtomicInteger,使用線程本地變量?ThreadLocal,加鎖排隊執(zhí)行,三種方法的使用場景及區(qū)別需要的小伙伴可以參考一下
    2022-05-05
  • 超詳細(xì)講解Java秒殺項目用戶驗證模塊的實現(xiàn)

    超詳細(xì)講解Java秒殺項目用戶驗證模塊的實現(xiàn)

    這是一個主要使用java開發(fā)的秒殺系統(tǒng),項目比較大,所以本篇只實現(xiàn)了用戶驗證模塊,代碼非常詳盡,感興趣的朋友快來看看
    2022-03-03
  • spring boot的maven配置依賴詳解

    spring boot的maven配置依賴詳解

    本篇文章主要介紹了spring boot的maven配置依賴詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Java如何生成帶網(wǎng)站鏈接(URL)的二維碼

    Java如何生成帶網(wǎng)站鏈接(URL)的二維碼

    自從微信掃描出世,二維碼掃描逐漸已經(jīng)成為一種主流的信息傳遞和交換方式,這篇文章主要給大家介紹了關(guān)于Java如何生成帶網(wǎng)站鏈接(URL)的二維碼的相關(guān)資料,文中通過圖文實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-07-07
  • Java實現(xiàn)微信小程序加密數(shù)據(jù)解密算法

    Java實現(xiàn)微信小程序加密數(shù)據(jù)解密算法

    我們開發(fā)微信小程序的過程中,我們的服務(wù)端有時需要獲取微信提供的開放數(shù)據(jù)。微信會對這些開放數(shù)據(jù)做簽名和加密處理,本文通過實例代碼給大家介紹Java實現(xiàn)微信小程序加密數(shù)據(jù)解密算法,感興趣的朋友一起看看吧
    2021-11-11
  • java 刪除文件夾中的所有內(nèi)容而不刪除文件夾本身的實例

    java 刪除文件夾中的所有內(nèi)容而不刪除文件夾本身的實例

    下面小編就為大家?guī)硪黄猨ava 刪除文件夾中的所有內(nèi)容而不刪除文件夾本身的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • Java實現(xiàn)將方法作為參數(shù)傳遞的方法小結(jié)

    Java實現(xiàn)將方法作為參數(shù)傳遞的方法小結(jié)

    在Java編程中,將方法作為參數(shù)傳遞是一種強大的技術(shù),可以提高代碼的靈活性和可重用性,本文將探討幾種在Java中實現(xiàn)這一目標(biāo)的方法,需要的朋友可以參考下
    2025-03-03
  • JAVA的Dubbo如何實現(xiàn)各種限流算法

    JAVA的Dubbo如何實現(xiàn)各種限流算法

    Dubbo是一種高性能的Java RPC框架,廣泛應(yīng)用于分布式服務(wù)架構(gòu)中,在Dubbo中實現(xiàn)限流可以幫助服務(wù)在高并發(fā)場景下保持穩(wěn)定性和可靠性,常見的限流算法包括固定窗口算法、滑動窗口算法、令牌桶算法和漏桶算法,在Dubbo中集成限流器可以通過實現(xiàn)自定義過濾器來實現(xiàn)
    2025-01-01
  • springboot集成swagger3與knife4j的詳細(xì)代碼

    springboot集成swagger3與knife4j的詳細(xì)代碼

    這篇文章主要介紹了springboot集成swagger3與knife4j,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • Java vector的詳解及實例

    Java vector的詳解及實例

    這篇文章主要介紹了Java vector的詳解及實例的相關(guān)資料,需要的朋友可以參考下
    2017-03-03

最新評論

丹寨县| 来安县| 磴口县| 汤阴县| 武乡县| 吴桥县| 敖汉旗| 惠州市| 安康市| 仁寿县| 新平| 阿拉善盟| 罗城| 京山县| 丰顺县| 永福县| 株洲县| 镇康县| 栾川县| 二连浩特市| 汽车| 沙田区| 南皮县| 宜宾市| 定安县| 深泽县| 开原市| 仪陇县| 兰考县| 盈江县| 东丽区| 甘泉县| 竹北市| 枣阳市| 张家口市| 乃东县| 广宁县| 伊宁市| 秦皇岛市| 离岛区| 平陆县|