PipelineDocs
GitHub
Docs / プラグイン開発 / Executor種別

Executor種別

現在実装されている executor は shellpython_module の2種類です。モデルの型定義には http_post / sql / python_eval / container も宣言されていますが未実装で、これらの workload は worker が claim せずスキップします。

shell

任意のシェルコマンドを 1タスク = 1プロセス として実行します。

{
  "command": ["bash", "-c", "echo task={task.pk}"],
  "cwd": null,
  "env": {"MY_VAR": "value"},
  "timeout_secs": 60
}

テンプレート変数 {task.pk} {task.extra.KEY} が展開されます。成否は success_criteria (既定 {"type":"exit_code","expected":0}) の通り、プロセスの exit code で判定されます。

executor_config の鍵意味
command実行するコマンドの配列 (argv)。テンプレート変数を展開。
cwd作業ディレクトリ (任意、null で既定)。
env追加の環境変数 (任意)。
timeout_secsプロセスのタイムアウト秒。

python_module

プラグインを呼びます (プラグインSDK)。instance は worker プロセスでキャッシュされるため、重い setup() は1回だけ実行されます。python_module では exit code が無いため、成否は process() の戻り値 / 例外で決まります。

{
  "source_path": "plugins/my_plugin",
  "module": "main",
  "callable": "process",
  "init_kwargs": {
    "api_url": "https://api.example.com",
    "timeout_secs": 10
  }
}
executor_config の鍵意味
source_pathプラグインのディレクトリ (例 plugins/my_plugin / /opt/pipeline/plugins/my_plugin)。
moduleディレクトリ内の .py ファイル名 (拡張子なし) or サブパッケージ名。
callable呼ぶ関数名。既定 process
init_kwargssetup(**init_kwargs) に渡す dict。フォームで組み立てられます。
max_duration_ms(任意) process() がこれを超えたら失敗扱い。0/未指定で無効。

callable は既定で process です。モジュール解決の内部 (slug 込みキーによる同名衝突回避) は プラグインSDK を参照してください。

success_criteria / on_success / on_failure

success_criteriatype: exit_code のときだけ実ロジックを持ち、それ以外は process() の戻り値 (成功フラグ) がそのまま使われます。on_success / on_failure フィールドはモデル・DB に存在しますが、現状ランタイムでは消費されません (予約項目)。チェーン実行が要る場合は plugin 側か self_loop で組んでください。

Pipeline — GUI-first batch fleet · ぱっぷすラボ GitHub · ホーム