このトピックでは、Elastic Compute Service (ECS) インスタンスまたはコンテナーサービスにエージェントをインストールし、MSE-XXLJOB に接続する方法について説明します。
概要
MSE コンソールを使用すると、スクリプトや SQL を動的に作成または変更して、定期タスクをスケジュールおよび実行できます。

操作手順
通常アプリケーションの作成
XXL-JOB コンソールにログインし、トップメニューバーでリージョンを選択します。
対象のインスタンスをクリックして、インスタンス詳細ページを開きます。
左側のナビゲーションウィンドウで、[アプリケーション管理] を選択し、[アプリケーションの作成] をクリックします。
[アプリケーションタイプ] を [通常アプリケーション] に設定し、必要に応じて他のパラメーターを設定してから、[OK] をクリックします。
エージェント経由でのエグゼキュータの接続
インストールパッケージ、Docker、または Kubernetes を使用してエグゼキュータをデプロイできます。
インストールパッケージを使用したデプロイ
前提条件
JDK 17 以降がインストールされていること。
インストールパッケージをダウンロードします。
wget https://schedulerx3.oss-cn-hangzhou.aliyuncs.com/xxljob/schedulerx3-agent-1.0.0-bin.tar.gzパッケージを展開して設定します。
# パッケージを展開します。 tar -zxvf schedulerx3-agent-1.0.0-bin.tar.gz cd schedulerx3-agent-1.0.0-bin展開後のディレクトリ構造は次のとおりです:
schedulerx3-worker-2.4.2-jdk17-bin/ ├── bin/ # 起動スクリプトフォルダ ├── conf/ # 設定ファイルフォルダ │ ├── application.yml # アプリケーション設定 │ └── logback-spring.xml # ログ設定 ├── lib/ # 依存 JAR パッケージフォルダ └── logs/ # ログフォルダ (実行時に自動作成) ├── stdout.log # 標準出力ログ ├── stderr.log # 標準エラーログ ├── worker.log # アプリケーションログ ├── error.log # エラーログ ├── gc.log # GC ログ └── archive/ # アーカイブ済みログフォルダconf/application.yml設定ファイルを編集し、ご利用の XXL-JOB インスタンスに合わせて次のパラメーターを設定します:xxl: job: admin-addresses: {サービス登録アドレス} access-token: {アプリケーション AccessToken} executor: appname: {アプリケーション AppName}サービスを起動します。
Linux/Mac
# バックグラウンドで起動 ./bin/start.sh # フォアグラウンドで起動 (デバッグ用) ./bin/start.sh -f # 停止 ./bin/stop.sh # 再起動 ./bin/restart.sh # ステータスの確認 ./bin/status.sh # ログの表示 tail -f logs/worker.logWindows
REM バックグラウンドで起動 .\bin\start.cmd REM フォアグラウンドで起動 (デバッグ用) .\bin\start.cmd -f REM 停止 .\bin\stop.cmd REM 再起動 .\bin\restart.cmd REM ステータスの確認 .\bin\status.cmd REM ログの表示 type logs\worker.log
(オプション) ログの設定
メインのログファイルは
logs/フォルダにあります。デフォルトでは、タスク実行ログは${user.home}/applogs/xxl-job/jobhandlerにあります。ログファイル
説明
ローリングポリシー
stdout.log標準出力ログ (起動ログ)
スクリプトのリダイレクト
stderr.log標準エラーログ (例外スタック)
スクリプトリダイレクト
worker.logアプリケーションログ (INFO 以上)
ファイルあたり 100 MB、30 日間保持
error.logエラーログ (ERROR レベル)
ファイルあたり 50 MB、60 日間保持
gc.logGC ログ
JVM パラメーター設定
heap_dump.hprofヒープダンプファイル (メモリ不足 (OOM) 時に生成)
-
archive/アーカイブ済みログフォルダ (.gz への自動圧縮)
-
conf/logback-spring.xmlを編集して、ログ出力を調整します。<!-- ルートログレベルの変更 --> <root level="INFO"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE" /> </root> <!-- 特定パッケージのログレベルの変更 --> <logger name="com.aliyun.schedulerx" level="DEBUG" /> <logger name="com.xxl.job" level="DEBUG" />
(任意) JVM パラメーターを設定します。実際のペイロードに基づいて JVM メモリサイズを調整します。
# Linux/Mac - 一時的に指定 JAVA_OPTS="-Xms2g -Xmx4g" ./bin/start.sh # Linux/Mac - 恒久的に変更 vim bin/start.sh # JAVA_OPTS 変数を編集 # Windows - 一時的に指定 set JAVA_OPTS=-Xms2g -Xmx4g .\bin\start.cmd # Windows - 恒久的に変更 notepad bin\start.cmd # JAVA_OPTS 変数を編集
Docker での起動
方法 1:パブリックイメージを使用したデプロイ
パブリックイメージは、通常のスクリプト用のランタイムを提供し、プリインストール済みの Python、Node.js、Go 環境が含まれています。イメージリポジトリから直接イメージをプルして実行でき、ビルドは不要です。
# イメージのプル
docker pull schedulerx-registry.cn-hangzhou.cr.aliyuncs.com/schedulerx3/schedulerx3-agent:1.0.0
# カスタム設定で実行
docker run -d \
--name schedulerx3-agent \
-p 9999:9999 \
# 必要に応じて JVM パラメーターを設定
-e JAVA_OPTS="-Xms1g -Xmx2g" \
-e SCHEDULERX3_ADMIN_ADDRESSES="{サービス登録アドレス}" \
-e SCHEDULERX3_EXECUTOR_APPNAME="{アプリケーション AppName}" \
-e SCHEDULERX3_ACCESS_TOKEN="{アプリケーション AccessToken}" \
-v $(pwd)/logs:/opt/schedulerx3-agent/logs \
--restart unless-stopped \
schedulerx-registry.cn-hangzhou.cr.aliyuncs.com/schedulerx3/schedulerx3-agent:1.0.0
方法 2:tar パッケージからのイメージのビルド
アプリケーションに追加のコンポーネントやカスタムベースイメージが必要な場合は、ダウンロードした tar パッケージからカスタムイメージをビルドし、ご利用のイメージリポジトリに公開できます。
# インストールパッケージのダウンロード
wget https://schedulerx3.oss-cn-hangzhou.aliyuncs.com/xxljob/schedulerx3-agent-1.0.0-bin.tar.gz
# Docker イメージのビルド
docker build -t schedulerx3-agent:1.0.0 -f Dockerfile .以下は Dockerfile のサンプルです:
################################################################################
### ビジネスニーズに応じて、この Dockerfile に必要なコンポーネントをインストールします。
################################################################################
# 独自のベースイメージを設定
FROM hub.docker.xxx.com/library/openjdk:17.0.1-jdk-bullseye
LABEL maintainer="SchedulerX Team"
LABEL description="SchedulerX3 Agent - XXL-Job Executor"
LABEL version="2.4.2"
# Alibaba Cloud ミラーソースを設定
RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list && \
sed -i 's|security.debian.org/debian-security|mirrors.aliyun.com/debian-security|g' /etc/apt/sources.list
# 基本ツール、Python 3、Node.js、Go をインストール
RUN apt-get update && \
apt-get install -y python3 python3-distutils curl wget ca-certificates nodejs npm golang-go && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# 公式スクリプトを使用して pip をインストール
RUN curl https://bootstrap.pypa.io/get-pip.py -o /tmp/get-pip.py && \
python3 /tmp/get-pip.py && \
rm -f /tmp/get-pip.py && \
ln -sf /usr/bin/python3 /usr/bin/python
# Go 環境変数を設定
ENV GOPATH=/root/go
ENV PATH=$GOPATH/bin:$PATH
ENV GO111MODULE=on
# tar パッケージをイメージにコピー
COPY schedulerx3-agent-*-bin.tar.gz /tmp/schedulerx3-agent.tar.gz
# tar パッケージを指定フォルダに展開 (トップレベルフォルダを削除)
RUN mkdir -p /opt/schedulerx3-agent && \
tar -xzf /tmp/schedulerx3-agent.tar.gz --strip-components=1 -C /opt/schedulerx3-worker && \
chmod +x /opt/schedulerx3-agent/bin/*.sh && \
mkdir -p /opt/schedulerx3-agent/logs && \
rm -f /tmp/schedulerx3-agent.tar.gz
# 作業ディレクトリを設定
WORKDIR /opt/schedulerx3-agent
# ポートを公開
EXPOSE 9999
# 起動コマンド (start.sh のフォアグラウンドモードを使用)
CMD ["bin/start.sh", "-f"]
Kubernetes での起動
schedulerx3-agent.yamlファイルを作成して、デプロイメントを定義します。apiVersion: apps/v1 kind: Deployment metadata: name: schedulerx3-agent labels: app: schedulerx3-agent spec: replicas: 1 selector: matchLabels: app: schedulerx3-agent template: metadata: labels: app: schedulerx3-agent spec: containers: - name: schedulerx3-agent image: schedulerx-registry.cn-hangzhou.cr.aliyuncs.com/schedulerx3/schedulerx3-agent:1.0.0 imagePullPolicy: Always ports: - containerPort: 9999 env: - name: "SCHEDULERX3_ADMIN_ADDRESSES" value: "{サービス登録アドレス}" - name: "SCHEDULERX3_EXECUTOR_APPNAME" value: "{アプリケーションの AppName}" - name: "SCHEDULERX3_ACCESS_TOKEN" value: "{アプリケーションの AccessToken}" livenessProbe: tcpSocket: port: 9999 timeoutSeconds: 30 initialDelaySeconds: 30Kubernetes にデプロイします。
# デプロイ kubectl apply -f schedulerx3-agent.yaml
タスクの作成
スクリプトタスク
インスタンス詳細ページの左側のナビゲーションウィンドウで、 を選択します。
[タスクの作成] をクリックします。この例では、シェルスクリプトの設定方法を示します。他のパラメーターは必要に応じて設定するか、デフォルト値を使用できます。
説明エージェントが UNIX/Linux システムにデプロイされている場合は、[ファイル形式] を Unix に設定してください。
[関連アプリケーション] に、作成した通常のアプリケーションを設定します。
[タスクタイプ] を [Shell] に設定します。
[タスク管理] ページで、タスクの [操作] 列にある [一度実行] をクリックしてテストを実行します。
左側のナビゲーションウィンドウで [タスクインスタンス] を選択して、タスクの実行レコードを表示します。[ログ] をクリックして、スクリプトの詳細な実行情報を表示します。