拡張ジョブ定義CSVファイル †
概要 †
拡張ジョブ定義CSVファイルは各ジョブの詳細を定義するCSVファイルです。エンコード形式はUTF-8です。
フロー定義BPMNファイル内のジョブ名(serviceTaskタグのname属性)を元に本ファイルの1レコードと結び付け、ジョブの実行場所やパラメータ設定、異常終了の条件などを設定することができます。
本ファイルは省略可能です。省略した場合はすべてのジョブに対してデフォルト値が設定されます。
カラム一覧 †
順番 | カラム名 | 説明 | 省略時のデフォルト値 |
1 | ジョブ名 | ジョブの名称を指定します。この値を元にフロー定義BPMNファイル内のジョブとの結び付けを行います。 | (省略不可) |
2 | 実行ノード名 | ジョブを実行するマシンのノード名またはIPアドレスを指定します。 | マスタ設定ファイルのJob.default_node |
3 | ポート番号 | GoCutoマスタからのジョブ実行要求時に使用するポート番号を指定します。 | マスタ設定ファイルのJob.default_port |
4 | 実行ファイル | ジョブとして実行するファイルのパスを指定します。 | [サーバント設定ファイルのDir.job_dir]/[ジョブ名] |
5 | 実行時引数 | ジョブへ渡すコマンドライン引数を指定します。 複数指定する場合は半角スペースで区切ります。(例:「ab cd efg」) | (引数なし) |
6 | 実行時環境変数 | ジョブ実行時に設定する環境変数を指定します。 複数指定する場合は+で区切ります。(例:「AA=abc+BB=efg」) | (環境変数なし) |
7 | 作業ディレクトリ | ジョブ実行時のワーキングディレクトリを指定します。 | サーバントのインストールディレクトリ |
8 | 警告終了コード | ジョブの終了コードが本カラムの指定値以上の場合、ジョブが警告終了したと判定します。 0を指定した場合は終了コードによる警告終了判定を行いません。 | 0 |
9 | 警告終了出力パターン | ジョブからの標準出力・標準エラー出力に本カラムの指定値が含まれる場合、ジョブが警告終了したと判定します。 指定しない場合は出力パターンによる警告終了判定を行いません。 | (なし) |
10 | 異常終了コード | ジョブの終了コードが本カラムの指定値以上の場合、ジョブが異常終了したと判定します。 0を指定した場合は終了コードによる異常終了判定を行いません。 | 0 |
11 | 異常終了出力パターン | ジョブからの標準出力・標準エラー出力に本カラムの指定値が含まれる場合、ジョブが異常終了したと判定します。 指定しない場合は出力パターンによる異常終了判定を行いません。 | (なし) |
12 | タイムアウト時間(分) | ジョブの実行時間が本カラムの指定値を超えた場合、ジョブが異常終了したと判定します。 0を指定した場合はタイムアウトを行いません。 | マスタ設定ファイルのJob.default_timeout_min |
13 | セカンダリ実行ノード名 | (V0.9.2以上) ジョブの実行開始に失敗した場合に実行ノードの代替としてジョブを実行するマシンのノード名またはIPアドレスを指定します。 | (指定なし) |
14 | セカンダリポート番号 | (V0.9.2以上) 代替ジョブ実行マシンへのジョブ実行要求時に使用するポート番号を指定します。 | (指定なし) |
補足事項 †
- 1行目はタイトル行として扱い、読み飛ばします。
- ジョブの警告終了・異常終了の条件を同時に満たした場合は異常終了として扱います。
記述例 †
ジョブ名,ノード名,ポート番号,実行ファイル,引数,環境変数,作業ディレクトリ,警告終了RC,警告終了出力,異常終了RC,異常終了出力,タイムアウト時間,セカンダリノード名,セカンダリポート番号
job1,localhost,2015,$SEJOBPATH$\job1.bat,$MSJOBNET:SD$,,C:\work,1,WARN,8,ERROR,1,othernode,3015
job2,123.45.67.89,12345,C:\job\job2.bat,$MJjob1:OUT$,INSID=$MSJOBNET:ID$+LASTJOBEND=$MJjob1:ED$,0,,128,,10,,
GoCuto変数機能 †
拡張ジョブ定義CSVファイルの一部のカラムではGoCuto変数を使用することができます。これを用いてジョブ間でのデータ受け渡しや、実行時情報の取得ができます。
使用可能な変数と使用可能なカラムの一覧は以下の通りです。
変数 | 説明 | 使用可能なカラム |
実行ファイル | 実行時引数 | 実行時環境変数 | 作業ディレクトリ |
$MSJOBNET:ID$ | ジョブネットの実行毎に割り当てられる一意なIDが格納されます。 | | ● | ● | |
$MSJOBNET:SD$ | ジョブネットの起動日時が格納されます。 (書式:YYYY-MM-DD HH:MM:SS.SSS) | | ● | ● | |
$SSROOT$ | ジョブ実行サーバントのインストールディレクトリが格納されます。 | ● | ● | ● | ● |
$ME<環境変数名>$ | マスタ動作マシンの環境変数が格納されます。 (例:PATH変数を取得する場合→$MEPATH$) | ● | ● | ● | ● |
$SE<環境変数名>$ | ジョブ実行サーバントの動作マシンの環境変数が格納されます。 (例:PATH変数を取得する場合→$SEPATH$) | ● | ● | ● | ● |
$MJ<ジョブ名>:RC$ | 実行中のジョブネット内における、指定したジョブの終了コードが格納されます。 | | ● | ● | |
$MJ<ジョブ名>:SD$ | 実行中のジョブネット内における、指定したジョブの実行開始時刻が格納されます。 (書式:YYYY-MM-DD HH:MM:SS.SSS) | | ● | ● | |
$MJ<ジョブ名>:ED$ | 実行中のジョブネット内における、指定したジョブの実行終了時刻が格納されます。 (書式:YYYY-MM-DD HH:MM:SS.SSS) | | ● | ● | |
$MJ<ジョブ名>:OUT$ | 実行中のジョブネット内における、指定したジョブの標準出力の最終行が格納されます。 | | ● | ● | |
$MJ~$系の変数について †
$MJ~$系の変数は実行済みのジョブ情報のみ取得可能であり、未実行のジョブ情報を取得しようとするとジョブネットがエラー終了します。
また、指定したジョブ名のジョブが複数回実行されている場合は、最後に実行されたジョブの情報を取得します。
セカンダリサーバント機能(V0.9.2以上) †
ジョブ実行開始失敗時に、代替のサーバント(セカンダリサーバント)でジョブを実行することができます。
セカンダリサーバント機能を利用するには、「セカンダリ実行ノード名」「セカンダリポート番号」に実行するマシンのノード名およびサーバントの待機ポート番号を設定してください。
Dockerコンテナ内ジョブ起動機能(V0.9.7以上) †
「実行ノード名」を以下のように設定することで、Dockerコンテナ内のジョブをホストマシン上のサーバントから起動することができます。
(事前にサーバント設定ファイルのdocker_command_pathを設定する必要があります。)
サーバント実行ノード名>コンテナ名
サーバント実行ノード名>tcp://Dockerホスト名:Docker接続ポート番号/コンテナ名
- 例1:サーバント[12.34.56.789]とDockerが同マシンで動作しており、コンテナ名がtestcntの場合
12.34.56.789>testcnt
- 例2:サーバント[12.34.56.789]から別ホスト[98.76.54.32:1234]で動作しているDocker上のコンテナremotecntを使用する場合
12.34.56.789>tcp://98.76.54.32:1234/remotecnt
なお、セカンダリサーバントに対しても同様の設定を行うことができます。
また、Docker上のジョブに対して実行時環境変数・作業ディレクトリを使用することはできません。(これらの設定はサーバントが動作しているホストマシンへ適用されます)
サーバントと別ホストのDockerを使用する場合の注意点 †
サーバントから別ホストのDockerへアクセスするためには、DockerのRemote APIへのTCP接続を有効にする必要があります。
これはDockerサーバ(Dockerデーモン)へ-Hオプションを指定することで有効化できますが、この設定ファイル・設定項目名は環境ごとに異なります。
一例を挙げると、CentOS7では/etc/sysconfig/dockerのOPTIONS、Ubuntuでは/etc/default/dockerのDOCKER_OPTSに設定を行います。
お使いの環境に合わせて設定を行ってください。
Docker設定ファイルに関する公式ドキュメント