除了 xxl-job,有一款更棒的分佈式任務調度框架-

大家好,我是 Tom 哥。

PowerJob 是新一代分佈式任務調度與計算框架,支持 CRON、API、固定頻率、固定延遲等調度策略,提供工作流來編排任務解決依賴關係,能讓您輕鬆完成作業的調度與繁雜任務的分佈式計算。

爲什麼選擇 PowerJob?

當前市面上流行的作業調度框架有老牌的 Quartz、基於 Quartz 的 elastic-job 和原先基於 Quartz 後面移除依賴的 xxl-job,這裏分別談一些這些框架現存的缺點。

Quartz 可以視爲第一代任務調度框架,基本上是現有所有分佈式調度框架的 “祖宗”。由於歷史原因,它不提供 Web 界面,只能通過 API 完成任務的配置,使用起來不夠方便和靈活,同時它僅支持單機執行,無法有效利用整個集羣的計算能力。

xxl-job 可以視爲第二代任務調度框架,在一定程度上解決了 Quartz 的不足,在過去幾年中是個非常優秀的調度框架,不過放到今天來看,還是存在着一些不足的,具體如下:

原文:
blog.csdn.net/LY_624/article/details/106987036

正所謂長江後浪推前浪,在如今這個數據量日益增長、業務越來越複雜的年代,急需一款更爲強大的任務調度框架來解決上訴問題,而 PowerJob 因此應運而生。

PowerJob 可以被認爲是第三代任務調度框架,在任務調度的基礎上,還額外提供了分佈式計算和工作流功能,其主要特性如下:

同類產品對比

適用場景

整體架構

相關鏈接

快速開始

PowerJob 由調度服務器(powerjob-server)和執行器 (powerjob-worker) 兩部分組成,powerjob-server 負責提供 Web 服務和完成任務的調度,powerjob-worker 則負責執行用戶所編寫的任務代碼,同時提供分佈式計算能力。

初始化項目

1、克隆項目到本地

git clone https://github.com/KFCFans/PowerJob.git

2、導入 IDE,源碼結構如下,我們需要啓動調度服務器(powerjob-server),同時在 samples 工程中編寫自己的處理器代碼

啓動調度服務器

1、創建數據庫 powerjob-daily

2、修改配置文件,配置文件的說明官方文檔寫的非常詳細,此處不再贅述。需要修改的地方爲數據庫配置spring.datasource.core.jdbc-urlspring.datasource.core.usernamespring.datasource.core.password,當然,有 mongoDB 的同學也可以修改spring.data.mongodb.uri以獲取完全版體驗。

3、完成配置文件的修改後,可以直接通過啓動類com.github.kfcfans.powerjob.server.OhMyApplication啓動調度服務器,觀察啓動日誌,查看是否啓動成功~啓動成功後,訪問 http://127.0.0.1:7700/ ,如果能順利出現 Web 界面,則說明調度服務器啓動成功!

4、註冊應用:點擊主頁應用註冊按鈕,填入 oms-test和控制檯密碼(用於進入控制檯),註冊示例應用(當然你也可以註冊其他的 appName,只是別忘記在示例程序中同步修改~)

編寫示例代碼

進入示例工程(powerjob-worker-samples),修改配置文件連接 powerjob-server 並編寫自己的處理器代碼。

1、修改 powerjob-worker-samples 的啓動配置類com.github.kfcfans.powerjob.samples.OhMySchedulerConfigAppName修改爲剛剛在控制檯註冊的名稱

2、編寫自己的處理器:隨便找個地方新建類,繼承你想要使用的處理器(各個處理器的介紹可見官方文檔,文檔非常詳細),這裏爲了簡單演示,選擇使用單機處理器BasicProcessor,以下是代碼示例。

3、啓動示例程序,即直接運行主類com.github.kfcfans.powerjob.samples.SampleApplication,觀察控制檯輸出信息,判斷是否啓動成功。

任務的配置與運行

調度服務器與示例工程都啓動完畢後,再次前往 Web 頁面( http://127.0.0.1:7700/ ),進行任務的配置與運行。

1、在首頁輸入框輸入配置的應用名稱,成功操作後會正式進入前端管理界面。

2、點擊任務管理 -> 新建任務(右上角),開始創建任務。

3、完成任務創建後,即可在控制檯看到剛纔創建的任務,如果覺得等待調度太過於漫長,可以直接點擊運行按鈕,立即運行本任務。

4、前往任務示例邊欄,查看任務的運行狀態和在線日誌

基礎的教程到這裏也就結束了~更多功能示例可見官方文檔,工作流、MapReduce、容器等高級特性等你來探索!

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/1sNBX0W-5Z7PJWaKUWwHJw