サーバーとワーカーノード間で、cron、固定間隔、遅延実行、MapReduce形式のタスクを扱えるJava分散ジョブスケジューリングフレームワーク。
xuxueli/xxl-job
Cronや一定間隔での起動、シャード化したブロードキャストジョブ、フェイルオーバーや再試行に対応する、Webコンソール付きの分散タスクスケジューリングプラットフォーム。
- スター
- 30,622
- フォーク
- 11,494
- 未解決の Issue
- 72
- 最終コミット
- 13 日前
これは何?
XXL-JOBは、Javaアプリケーション向けの分散タスクスケジューリングプラットフォームです。Webコンソールからジョブの作成、開始、停止、監視を行い、中央スケジューラに登録された1つ以上のワーカープロセスでエグゼキュータがジョブの処理を実行します。スケジューラはクラスター構成での稼働を想定しており、エグゼキュータもクラスターにデプロイできるため、高可用性を確保できます。
一般的なスケジューリング要件として、Cron、固定レート、固定遅延のトリガー、APIおよび手動トリガー、親子ジョブの依存関係に対応しています。実行先はラウンドロビン、ランダム、一貫性ハッシュ、フェイルオーバーなどのルーティング戦略で制御でき、すべてのエグゼキュータノードで実行するシャード化ブロードキャストジョブも利用できます。失敗したジョブは再試行でき、タイムアウトしたジョブは中断されます。失敗通知はメールで送信され、ほかの通知チャネルを追加するための拡張ポイントも用意されています。
運用機能として、shell、Python、Node.js、PHP、PowerShellのスクリプトに対応したGLUE Web IDEによるオンライン編集、順次表示される実行ログ、実行レポート、ユーザーおよびエグゼキュータ単位の権限管理、監査ログを備えています。スケジューラとエグゼキュータ間の通信は暗号化されており、RESTベースのOpenAPIを通じて、ほかの言語で記述されたサービスとも連携できます。
主な機能
- 01再デプロイせずにジョブの作成、開始、停止、編集を行えるWebコンソール。
- 02Cron、一定間隔、固定遅延、API、手動、親子ジョブの各トリガー。
- 03シャード化ブロードキャストジョブと、ラウンドロビン、一貫性ハッシュ、フェイルオーバーなどのルーティング戦略。
- 04ジョブのタイムアウト、失敗時の再試行、メール通知、およびほかの通知チャネル向けの拡張ポイント。
- 05オンラインでスクリプトやコードを実行でき、バージョン履歴も備えたGLUE Web IDE。
- 06ほかの言語で記述されたエグゼキュータとの連携に使える、言語に依存しないRESTful OpenAPI。
ユースケース
- Javaサービスのクラスター上で、データ同期や決済などの定期ジョブを実行する。
- 大規模なバッチ処理をシャードに分割し、複数のエグゼキュータノードで並列実行する。
- 集中管理されたログと通知を使い、shellやPythonのメンテナンススクリプトを定期実行する。
- 複数サーバーに分散したcronジョブを、監視機能付きの単一のスケジューリングコンソールに集約する。
クイックスタート
- 1
GitHubからリポジトリをクローンします
- 2
リポジトリ内のSQLスクリプトでデータベースを初期化します
- 3
Dockerで管理コンソールを起動します
docker pull xuxueli/xxl-job-admin
使う前に知っておきたいこと
- GPL-3.0ライセンスで提供されています。コピーレフト型ライセンスのため、派生物も同じ条件でオープンソース化する必要があります。
- Javaバックエンドとデータベースのセットアップが必要なため、セルフホスティングにはある程度の手間がかかります。
トピック
よくある質問
- xxl-job とは?
- Cronや一定間隔での起動、シャード化したブロードキャストジョブ、フェイルオーバーや再試行に対応する、Webコンソール付きの分散タスクスケジューリングプラットフォーム。 XXL-JOBは、Javaアプリケーション向けの分散タスクスケジューリングプラットフォームです。Webコンソールからジョブの作成、開始、停止、監視を行い、中央スケジューラに登録された1つ以上のワーカープロセスでエグゼキュータがジョブの処理を実行します。スケジューラはクラスター構成での稼働を想定しており、エグゼキュータもクラスターにデプロイできるため、高可用性を確保できます。
- xxl-job は無料で使えますか?ライセンスは?
- xxl-job は GPL-3.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- xxl-job は今もメンテナンスされていますか?
- 活発にメンテナンス中。xxl-job の最終コミットは 2026年10月9日 です。
- xxl-job は何に使えますか?
- Javaサービスのクラスター上で、データ同期や決済などの定期ジョブを実行する。 大規模なバッチ処理をシャードに分割し、複数のエグゼキュータノードで並列実行する。 集中管理されたログと通知を使い、shellやPythonのメンテナンススクリプトを定期実行する。 複数サーバーに分散したcronジョブを、監視機能付きの単一のスケジューリングコンソールに集約する。
- xxl-job のインストール方法は?
- GitHubからリポジトリをクローンします リポジトリ内のSQLスクリプトでデータベースを初期化します Dockerで管理コンソールを起動します: docker pull xuxueli/xxl-job-admin
- xxl-job はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/xuxueli/xxl-job
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
既存のスクリプト、SSHコマンド、コンテナを宣言的なYAMLから実行できる、データベース不要のセルフホスト型ワークフローオーケストレーター。
Textualベースのターミナルダッシュボードで、ローカルマシンやSSH経由のリモートサーバー上にあるcronジョブを作成・編集・一時停止・監視できます。
ValkeyとRedis向けのJavaクライアント。分散コレクション、ロック、キュー、サービスを提供します。
リトライ、キュー、可観測性を備えた、耐久性のある長時間実行型AIエージェントやバックグラウンドワークフローを構築・デプロイするための、オープンソースTypeScriptプラットフォーム。
最小限のセットアップで、本番運用に適したSpringベースのアプリケーションやサービスを構築できる、独自の方針を持つJavaフレームワークです。