すべてのプロダクト
Search
ドキュメントセンター

SchedulerX:スクリプトジョブ

最終更新日:May 08, 2025

このトピックでは、Shell、Python、または PHP スクリプトを作成してスクリプトジョブを作成する方法について説明します。

はじめに

次の図は、スクリプトジョブの使用方法を示しています。

yuque_diagram (1)

  1. スクリプトジョブを使用するには、事前にターゲットデバイスに schedulerx-agent をデプロイしてサーバーと通信し、スクリプト実行コマンドを受信し、実行結果を返します。

  2. Python 依存関係ライブラリや依存ファイルなど、スクリプトの実行に必要な依存関係をデバイスに事前にデプロイします。

  3. スクリプトが実行されるたびに、schedulerx-agentforks 子プロセスを作成してスクリプトを実行します。この子プロセスは schedulerx-agent のメモリを占有しませんが、デバイスのメモリを占有します(具体的なメモリ消費量はスクリプトの内容によって異なります)。多数のスクリプトジョブが同時に実行されている場合、デバイスのメモリが不足する可能性があります。大量の計算リソースを必要とするシナリオでは、Kubernetes ジョブ を使用してポッド経由でスクリプトを実行することをお勧めします。

前提条件

スクリプトジョブの作成

分散タスクスケジューリングプラットフォーム にログインし、左側のナビゲーションウィンドウで [タスク管理] をクリックし、[タスク管理] ページで ジョブを作成 します。[タスクの種類][ScriptTask] を選択します。

image

ステップ 1:スクリプト言語を選択する

[スクリプト] ドロップダウンリストから、スクリプト言語として [shell][python]、または [php] を選択します。

ステップ 2:実行コマンドを選択する

さまざまな言語でスクリプトを実行するためのコマンド:

  • シェルスクリプト:デフォルトのコマンドは /bin/sh です。

  • Python スクリプト:デフォルトのコマンドは python です。コマンドを python2 または python3 に変更できます。

  • PHP スクリプト:デフォルトのコマンドは php です。

ステップ 3:ファイル形式を選択する

[ファイル形式]unix または windows を選択すると、改行が異なります。

  • Windows システムでスクリプトを実行するには、windows を選択します。

  • Linux、UNIX、または macOS でスクリプトを実行するには、unix を選択します。

重要

スクリプトソースが Windows システム上にあり、Linux システムで実行する必要がある場合は、[ファイル形式][unix] を選択します。

ステップ 4:実行モードを選択する

アクセスの前提条件:スクリプトを実行するために、schedulerxAgent が事前にデプロイされていること。詳細については、「SchedulerX エージェントを使用してアプリケーションを SchedulerX に接続する(スクリプトまたは HTTP ジョブ)」をご参照ください。

[実行モード]

  • スタンドアロン操作:複数の SchedulerX エージェントをデプロイし、実行モードをスタンドアロン操作に設定すると、SchedulerX はスクリプトを実行する SchedulerX エージェントをランダムに選択します。

  • ブロードキャスト実行:複数の SchedulerX エージェントをデプロイし、実行モードをブロードキャスト実行に設定すると、SchedulerX はすべての SchedulerX エージェントにスクリプトをブロードキャストします。これにより、スクリプトはすべての SchedulerX エージェントで同時に実行されます。この設定は、バッチ O&M に適しています。

  • シャード実行:Python シャーディングジョブを作成する を参照してください。

スクリプトを作成する

スクリプトジョブが作成されると、スクリプト言語に基づいてデフォルトでスクリプトテンプレートが生成されます。[タスク管理] ページで [EditScript] をクリックすると、スクリプトの内容を変更できます。

image

過去のスクリプトバージョン

Professional Edition アプリケーションでは、過去のスクリプトバージョン機能を使用できます。[EditScript] ページで、[過去のバージョン] スイッチをオンにして、バージョン比較ページに移動します。

  • 左側には現在のバージョンが表示され、右側には過去のバージョンが表示されます。

  • ドロップダウンボックスをクリックして、バージョンのメモや作成時間などの過去のバージョン情報を表示します。

  • スクリプトの内容を変更した後、[確認] をクリックします。新しいバージョン名の入力を求められます。

image

デモ

ジョブブロードキャストに基づく分散処理

  1. 2 つの schedulerx-agent に接続します。

  2. [スクリプト][shell] に、[実行モード][ブロードキャスト実行] に設定して、新しいスクリプトジョブを作成します。次の図は、スクリプトの内容を示しています。

    image

  3. ジョブの [操作] 列の [1 回実行] をクリックします。

  4. 左側のナビゲーションウィンドウで [実行リスト] をクリックします。[実行リスト] ページで、ジョブインスタンスの [操作] 列の [ログ] をクリックして、各マシンで実行された内容を表示します。

    • 次の図は、172.16.13.125 の実行ログを示しています。ログによると、取得されたシャードの序数は 1 で、シャードの総数は 2 です。

      image

    • 次の図は、172.16.13.120 の実行ログを示しています。ログによると、取得されたシャードの序数は 0 で、シャードの総数は 2 です。

      image

ジョブシャーディングに基づく分散処理

  1. [スクリプト][shell] に、[実行モード][シャード実行] に設定して、新しいスクリプトジョブを作成します。次の図は、その他のジョブ構成を示しています。

    image

  2. ジョブを作成した後、ジョブの [EditScript] をクリックします。次の図は、スクリプトの内容を示しています。

    image

  3. ジョブの [操作] 列の [1 回実行] をクリックします。

  4. 左側のナビゲーションウィンドウで [実行リスト] をクリックします。[実行リスト] ページで、ジョブインスタンスの [操作] 列の [ログ] をクリックして、各マシンのシャーディングパラメータを表示します。

    • ログによると、2 つのシャード(hangzhoubeijing)が 172.16.13.120 に割り当てられ、実行されています。

    • 2 つのシャード(shenzhenshanghai)が 172.16.13.125 に割り当てられ、実行されています。

    image

関連情報

システム組み込みパラメータについては、「スクリプトのシステム変数」をご参照ください。