現在、ジョブIDと状態ごとに1つのイベントのみを作成しています(ここを参照)が、ジョブが特定の状態に2回入ることは可能です。
例として、ホストがスケジューラーによって異常であると見なされた場合、そのホスト上のすべてのジョブはダウンとしてマークされますが、ホストが戻った場合、ジョブはまだ実行中である可能性があるため、ジョブは実行状態に戻ります。 これらのジョブを含む後続のデプロイは、ダウンイベントが発行されないため失敗します(ダウンイベントは、ホストが異常になったときからすでに存在します)。
オプションのカップル:
@titanous @josephglanville @jvaticの考え?
スケジューラーがジョブをダウンとしてマークしたときに、置換ジョブがすでに開始されているため、ジョブが再び実行されているように見える場合は、ジョブを停止します。
それが正しい答えだと思います。
または、ホストがなくなったためになくなったジョブに対して、別の状態を追加することもできます。
@titanous切断されたホスト上のジョブに新しい状態を追加しても、役に立たないと思います。
スケジューラーは、ジョブが以前に停止としてマークされた(またはunknown
などの他の状態に置かれた)ホストに再接続する場合でも、実行中のジョブを停止するか、試行して停止するかを決定する必要があります。それらを再度実行中としてマークします(コントローラーでup
イベントが重複することになります)。
再接続後すぐにジョブを停止するだけでよいと思います。
Flynnはメンテナンスされておらず、インフラストラクチャは2021年6月1日にシャットダウンされます。詳細については、READMEを参照してください。
最も参考になるコメント
または、ホストがなくなったためになくなったジョブに対して、別の状態を追加することもできます。