Disjob 正在參加 2021 年度 OSC 中國開源項目評選,請投票支持!
Disjob 在 2021 年度 OSC 中國開源項目評選 中已獲得 {{ projectVoteCount }} 票,請投票支持!
2021 年度 OSC 中國開源項目評選 正在火熱進行中,快來投票支持你喜歡的開源項目!
2021 年度 OSC 中國開源項目評選 >>> 中場回顧
Disjob 獲得 2021 年度 OSC 中國開源項目評選「最佳人氣項目」 !
授權協議 Apache
開發語言 Java 查看源碼 »
操作系統 跨平臺
軟件類型 開源軟件
所屬分類 程序開發、 作業/任務調度
開源組織
地區 國產
投 遞 者 Ponfee
適用人群 未知
收錄時間 2023-10-15

軟件簡介

Disjob是一款分布式的任務調度框架,天然為支持分布式長任務執行而設計,它除了具備常規的任務調度功能外,還提供:任務拆分及分布式并行執行、暫停及取消運行中的任務、恢復執行被暫停的任務、任務執行失敗重試、保存任務的執行快照(Checkpoint)、任務依賴、任務編排(DAG)、廣播任務等能力。

以下是Disjob的整體流程圖:


特性

  • 分為管理器(Supervisor)和執行器(Worker)兩種角色,Supervisor與Worker可分離部署
  • Supervisor與Worker通過注冊中心相互發現,支持的注冊中心有:Database、Redis、Consul、Nacos、Zookeeper、Etcd
  • Supervisor負責生成任務,把任務派發給Worker執行,支持的任務派發方式有:Redis、Http
  • 需要指定Job的分組(job-group),Job的任務只會派發給指定組的Worker執行
  • 提供拆分任務的能力,重寫拆分方法JobHandler#split即可拆分為多個任務,實現分布式任務及并行執行
  • 支持暫停和取消運行中的任務,已暫停的任務可恢復繼續執行,執行失敗的任務支持重試
  • 支持任務保存(savepoint)其執行狀態,讓手動或異常暫停的任務能從上一次的執行狀態中恢復繼續執行
  • 任務在執行時若拋出PauseTaskException,會暫停對應實例下的全部任務(包括分布在不同worker機器中的任務)
  • 支持廣播任務,廣播任務會派發給job-group下的所有worker執行
  • 支持Job間的依賴,多個Job配置好依賴關系后便會按既定的依賴順序依次執行
  • 支持DAG工作流,可把jobHandler配置為復雜的DAG表達式,如:A->B,C,(D->E)->D,F->G
  • 提供Web管理后臺,通過界面進行作業配置,任務監控等

項目結構

disjob                                        # 主項目①
├── disjob-admin                              # 管理后臺項目②(基于Ruoyi框架二次開發)
├── disjob-bom                                # Maven project bom module
├── disjob-common                             # 公共的工具類模塊
├── disjob-core                               # 任務調度相關的核心類(如數據模型、枚舉類、抽象層接口等)
├── disjob-dispatch                           # 任務派發模塊
│   ├── disjob-dispatch-api                   # 任務派發的抽象接口層
│   ├── disjob-dispatch-http                  # 任務派發的Http實現
│   └── disjob-dispatch-redis                 # 任務派發的Redis實現
├── disjob-id                                 # 分布式ID生成模塊
├── disjob-registry                           # Server(Supervisor & Worker)注冊模塊
│   ├── disjob-registry-api                   # Server注冊中心的抽象接口層
│   ├── disjob-registry-consul                # Server注冊中心:Consul實現
│   ├── disjob-registry-database              # Server注冊中心:Database實現
│   ├── disjob-registry-etcd                  # Server注冊中心:Etcd實現
│   ├── disjob-registry-nacos                 # Server注冊中心:Nacos實現
│   ├── disjob-registry-redis                 # Server注冊中心:Redis實現
│   └── disjob-registry-zookeeper             # Server注冊中心:Zookeeper實現
├── disjob-reports                            # 聚合各個模塊的測試覆蓋率報告
├── disjob-samples                            # Samples項目③
│   ├── disjob-samples-frameless-worker       # Worker單獨部署的范例(普通Java-main應用)
│   ├── disjob-samples-springboot-common      # Samples Spring-boot公共模塊
│   ├── disjob-samples-springboot-merged      # Supervisor與Worker合并部署的范例(Spring-boot應用)
│   ├── disjob-samples-springboot-supervisor  # Supervisor單獨部署的范例(Spring-boot應用)
│   └── disjob-samples-springboot-worker      # Worker單獨部署的范例(Spring-boot應用)
├── disjob-supervisor                         # Supervisor代碼
├── disjob-test                               # 用于輔助測試
└── disjob-worker                             # Worker代碼
展開閱讀全文

代碼

的 Gitee 指數為
超過 的項目

評論

點擊引領話題?? 發布并加入討論??
暫無內容
發表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
沒有更多內容
暫無內容
發表了問答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
沒有更多內容
暫無內容
暫無內容
0 評論
10 收藏
分享
OSCHINA
登錄后可查看更多優質內容
返回頂部
頂部
一本久久综合亚洲鲁鲁五月天,无翼乌口工全彩无遮挡H全彩,英语老师解开裙子坐我腿中间