Task

Taskコンポーネントは、WHEELのコンポーネントの中で最も基本的かつ重要なコンポーネントです。
script プロパティに設定されたスクリプトファイルを、実行環境(host/use job scheduler/queueプロパティ)の設定に応じて実行します。
Taskコンポーネントに指定することのできるプロパティは以下のとおりです。
script
Taskコンポーネントの実行時に呼ぶスクリプトのファイル名を設定します。

scriptプロパティはセレクトボックスになっており、Taskコンポーネント内に存在するファイルの中から選ぶことができます。
Taskコンポーネントの実行結果について
Taskコンポーネントを実行した際の成否は指定されたスクリプトの戻り値で判定されます。(0:正常終了、0以外:異常終了)
従いまして、スクリプト内で複数のコマンドを実行する際は適宜、戻り値を指定してください。
host
scriptの実行環境として、リモートホスト設定にて設定されたリモートホスト、または”localhost”を選択します。

- “localhost”を選択したとき
scriptがWHEELサーバが動作しているマシン上で実行されます。 - “localhost”以外を選択したとき
sshでリモートホストへディレクトリ全体が転送され、scriptがリモートホスト上で実行されます。(後述のuse job schedulerが設定されているときは、scriptはバッチシステムにジョブスクリプトとして投入されます)
use job scheduler
scriptの実行をバッチシステムに投入する時に有効にします。
use job schedulerを有効にしたときのみ、次のqueue, submit optionプロパティを設定することができます。
- 無効のとき

- 有効のとき

queue
ジョブを投入するキューをリモートホスト設定で設定したキューの中から選びます。 無指定の場合はバッチシステムのデフォルトキューに対してジョブを投入します。
submit command
リモートホスト設定 で指定されたバッチシステムにジョブを投入するときのコマンド名が表示されます。 そのため、ここでは変更することはできません。
submit option
ジョブ投入時に追加で指定するオプションを設定します。
source script
リモートホストでスクリプトを実行する前に読み込む環境設定ファイルを指定します。
ここで指定したスクリプトはsourceコマンドで読み込まれます。
例えば、特定の環境変数を設定したり、モジュールシステム(Environment Modules等)を使用する場合に利用します。
例:
# setup.sh の内容
module load intel/2021
export MY_VAR=value
checker script
Taskコンポーネントの成功/失敗を判定するための専用スクリプトを指定します。 checkerスクリプトはTaskコンポーネント実行終了後に実行され、その戻り値(0:成功、0以外:失敗)でTaskの最終的な成否が決定されます。
checkerスクリプトが設定されている場合、scriptプロパティで指定したスクリプトの戻り値は無視され、checkerスクリプトの戻り値が使用されます。
例:
#!/bin/bash
# 出力ファイルの存在確認
if [ -f output.dat ]; then
exit 0
else
exit 1
fi
number of retry
Taskコンポーネントの実行に失敗したときに、自動的に再実行する回数を指定します。 無指定時は再実行しません。

use javascript expression for condition check
Taskコンポーネントの成功 / 失敗を判定するのにjavascript式を用いるか、シェルスクリプトを用いるかを指定します。
-
無効のとき

無効のときは、シェルスクリプトを選択するドロップダウンリストが表示されます。
ここで指定されたシェルスクリプトが、Taskコンポーネント実行終了後に実行され、戻り値が0であれば成功、0以外であれば失敗と判定されます。
なお、無指定のときは script に指定したスクリプトの戻り値で同様の判定が行われます。 -
有効のとき

有効のときは、javascript式を記述することができます。
ここで入力した式が、Taskコンポーネントの実行終了後に評価され、Truthyな値を返せば成功、Falsyな値を返せば失敗と判定されます。
スクリプト名、javascript式ともに未設定で、number of retryの値のみを設定していた場合は、スクリプトが正常終了するか、retryに設定した回数に達するまで再実行を繰り返します。
利用可能な環境変数について
再実行の判定を行うスクリプトやjavascript式では、以下の環境変数を利用できます。
- シェルスクリプトの場合:
WHEEL_TASK_RT - javascript式の場合:
wheelTaskRT
これらの変数には、scriptプロパティで指定されたスクリプトの戻り値が設定されます。 ただし、checkerプロパティが設定されている場合は、checkerスクリプトの戻り値が優先して使用されます。
例: シェルスクリプトで戻り値が10の場合のみ再実行する
#!/bin/bash
if [ "$WHEEL_TASK_RT" = "10" ]; then
exit 0
else
exit 1
fi
例: javascript式で戻り値が5未満の場合のみ再実行する
wheelTaskRT < 5
include, exclude

Taskコンポーネントをリモートホストで実行した際に生成されたファイルは、output filesに指定されているなど、その後の処理で必要にならない限り、リモートホスト上にそのままの状態で残されます。
そこで、その後のワークフローの処理には不要なものの確認はしたいファイル(実行時にアプリケーションが出力するログファイルなど)は、include に指定します。 すると、Taskコンポーネント実行終了時にWHEELサーバ上にコピーされ、Filesエリアで確認することができます。
include には、ディレクトリ名やglob(ワイルドカード)などを指定することができますが、さらに exclude を指定すればダウンロード対象から除外することができます。
例えば、include に*.txt、exclude にfoo.txtを指定して、実行終了時にfoo.txt, bar.txt, baz.txtが生成されていたとします。
このとき実際にWHEELサーバ上にコピーされるファイルは、bar.txt, baz.txtの2つのみとなります。
clean up flag
リモートホストでの実行終了後に、リモートホスト上に残されたファイルを削除するかどうかを指定します。

remove files を指定すれば削除、keep files を指定すればリモートホスト上に保存されます。
デフォルト設定では same as parent が指定されており、上位コンポーネントの設定と同じ動作をします。
なお、最上位コンポーネントで same as parent を指定した場合は、keep files を指定したときと同じ動作になります。