最新開源分布式定時任務調度系統


Open-Job

🔥2022 最新的輕量級分布式任務調度系統

🎨 Open-Job 介紹

開源分布式任務調度系統,項目官方文檔地址

✨ 已實現功能點

  1. 定時任務基於 redis 實現,支持動態修改任務狀態,同時支持拓展其他實現方式

  2. 客戶端與服務端通信采用 Grpc,同時支持拓展其他通信方式

  3. 注冊中心支持 Nacos、Zookeeper,同時支持拓展其他注冊中心,而且支持節點動態上線下線

  4. 客戶端集群部署支持負載均衡,默認提供了一致性hash、隨機權重算法,支持多種容錯機制,默認提供了失敗重試、故障轉移等機制,負載均衡和容錯都支持拓展

  5. 任務監控報警能力支持

  6. 前后端分離,管理后台基於 antd-pro 搭建

  7. 支持多應用任務調度

🍪 快速開始

1 搭建任務管理系統

  1. 下載本項目

git clone https://github.com/lijunping365/Open-Job.git

  1. 創建數據庫表

sql 文件在 doc/open_job.sql

  1. 下載前端項目

git clone https://github.com/lijunping365/Open-Job-Admin.git

需安裝 node.js,

  1. 啟動服務端,啟動前端項目

登錄任務管理系統創建任務,之后便可以進行任務管理了

2 搭建任務執行模塊

創建任務執行模塊可按照項目中客戶端示例工程搭建

  1. 在任務執行項目中加入以下依賴
<dependency>
    <groupId>com.saucesubfresh</groupId>
    <artifactId>open-rpc-server</artifactId>
    <version>1.0.6</version>
</dependency>
  1. 創建任務執行類並實現 JobHandler

示例1(類模式)

@Slf4j
@JobHandler(name = "job-one")
@Component
public class OpenJobHandlerOne implements OpenJobHandler {

    @Override
    public void handler(String params) {
        log.info("JobHandlerOne 處理任務");
    }
}

示例2(方法模式)

@Slf4j
@Component
public class OpenJobHandlerMethodOne{

    @JobHandler(name = "job-method-one1")
    public void handlerOne1(String params) {
        log.info("JobHandlerOne 處理任務, 任務參數 {}", params);
    }

    @JobHandler(name = "job-method-one2")
    public void handlerOne2(String params) {
        log.info("JobHandlerOne 處理任務, 任務參數 {}", params);
    }
}

❓ FAQ

有問題可以提 issues,我會及時解答

Contributing

歡迎參與項目貢獻!比如提交PR修復一個bug,或者新建 Issue 討論新特性或者變更。

產品開源免費,並且將持續提供免費的社區技術支持。個人或企業內部可自由的接入和使用。如有需要可郵件聯系作者免費獲取項目授權。

  • Licensed under the Apache License v2.0.
  • Copyright (c) 2022-present, lijunping.

🎉收尾

  1. 歡迎大家的關注和使用,歡迎 star,本項目將持續更新

  2. 歡迎接入的公司在 登記地址 登記,登記僅僅為了產品推廣。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM