キュー

Roadie はキューを用いたタスク処理にも対応しています。 デフォルトでは、キューに入れられたタスクは一つのインタンスによって処理されますが、 必要に応じてインスタンスを追加することもできます。

キューにタスクを追加する

タスクの追加は、roadie queue add コマンドを使用します。 このコマンドは、タスクを追加するキューの名前とスクリプトファイルの二つを受け取ります。 また、roadie run コマンドと同じオプション引数を指定できます。

キューを処理しているインスタンスが無い場合、新しいインスタンスが一台作成されます。

$ roadie queue add --local . --name task-1 queue-1 script.yml

上記のコマンドでは、script.ymlqueue-1 に追加します。 script.yml を処理するために、カレントディレクトリ以下をアップロードすることなど、 他のオプションは通常の roadie run コマンドと同様です。

このスクリプトには、task-1 という名前を付けていますので、 この名前を使って出力の取得が可能です。

キューの管理

roadie queue status コマンドは現在存在しているキューの一覧を表示します。 また、下記のコマンド

$ roadie queue status <queue name>

は、<queue name> キューに 入っているタスクの名前一覧を表示します。

キューの処理を一時停止させるには、

$ roadie queue stop <queue name>

を使用します。 このコマンドは未実行のスクリプト処理を停止させますが、 すでに実行中のスクリプトに関しては終了まで実行されます。

一時停止したキューを再実行するためには、

$ roadie queue restart <queue name>

を使用します。 このコマンドは、キューの実行のために新しいインスタンスを一台作成します。

キューを削除する場合は、

$ roadie queue delete <queue name>

を使用します。 キューを削除した場合、実行が完了していないタスクの出力は失われることがあります。

インスタンスの管理

デフォルトでは、キューのタスクは一台のインスタンスで処理されます。 複数のインスタンスで処理したい場合、インスタンスの追加を行う必要があります。

$ roadie queue instance add --instances N <queue name>

上記のコマンドは、 N 台のインスタンスを <queue name> キューの処理のために作成します。 --instance フラグを省略した場合は一台追加されます。 このコマンドは --disk-size フラグもサポートしており、 必要であれば作成されるインスタンスのディスクサイズをカスタマイズできます。

現在、あるキューの処理のために稼働しているインスタンス数を調べる場合、

$ roadie queue instance list <queue name>

を実行します。

ログの取得

キューを使って管理しているタスクのログを取得する場合、 roadie queue log コマンドを使ってください。

$ roadie queue log <queue name>

上記コマンドを実行すると、指定したキューに関連するログを全て表示します。

個別にタスクのログを取得する場合は、

$ roadie queue log <queue name> <task name>

を実行します。