2022-05 << 2022-06 >> 2022-07

2022-06-11 (土)

* 軽量なワークフローエンジン

cron+適当に作ったWebUIで色々実行している処理をどうにかしたくて,ワークフローエンジン探してみる.たくさん見つかって迷うけど,試しにDaguを使ってみる.

最近はAirflowを使っておけば無難みたいな雰囲気があるけど,あまりPython書きたくないのとAirflow自体が大きすぎて躊躇していた.いろいろな事情でクラウド上で実行しにくい処理を部屋のNASの片隅で動かしていたりするのも移行したいのだけど,メモリ2GBしかないのでメモリを数GB使うようなやつは困る.

DaguはGoで実装されたシングルバイナリのツールでメモリもあまり食わなそうなのが良さげ.

まだ様子見中だけど,本格的に使うには足りないものが多いような気もする.ただ作りもシンプルなので,カスタマイズやデバッグはしやすそう.

Docker内で動かすので,REST API経由で操作したいけどREST APIからはワークフローにパラメータ渡せなかった.これは簡単に対応できそうなので適当に書き換えて使う.

一つのyamlファイルが1つのワークフローに対応していて,他のワークフローを呼び出したりできないように見えるけど,タスク内でdagu startコマンドを実行すれば良さげ?

悩ましいのが,1つのワークフローは同時実行できない.複数起動したり,前回の処理の完了を待たずに実行したいのだけど,前回の処理が動いていると単に失敗するのでポーリングしないといけない.

2022-05 << 2022-06 >> 2022-07