Flynn: controller、scheduler:ジョブイベントの重複の制約を修正

作成日 2016年09月09日  ·  4コメント  ·  ソース: flynn/flynn

現在、ジョブIDと状態ごとに1つのイベントのみを作成しています(ここを参照)が、ジョブが特定の状態に2回入ることは可能です。

例として、ホストがスケジューラーによって異常であると見なされた場合、そのホスト上のすべてのジョブはダウンとしてマークされますが、ホストが戻った場合、ジョブはまだ実行中である可能性があるため、ジョブは実行状態に戻ります。 これらのジョブを含む後続のデプロイは、ダウンイベントが発行されないため失敗します(ダウンイベントは、ホストが異常になったときからすでに存在します)。

オプションのカップル:

  • 一意性制約を削除します(イベントが複製されないと仮定するものがあるかどうかを考慮する必要があります)
  • スケジューラがジョブをダウンとしてマークした場合、置換ジョブがすでに開始されているため、ジョブが再び実行されているように見える場合は、ジョブを停止します。

@titanous @josephglanville @jvaticの考え?

componencontroller componenscheduler kinbug

最も参考になるコメント

または、ホストがなくなったためになくなったジョブに対して、別の状態を追加することもできます。

全てのコメント4件

スケジューラーがジョブをダウンとしてマークしたときに、置換ジョブがすでに開始されているため、ジョブが再び実行されているように見える場合は、ジョブを停止します。

それが正しい答えだと思います。

または、ホストがなくなったためになくなったジョブに対して、別の状態を追加することもできます。

@titanous切断されたホスト上のジョブに新しい状態を追加しても、役に立たないと思います。

スケジューラーは、ジョブが以前に停止としてマークされた(またはunknownなどの他の状態に置かれた)ホストに再接続する場合でも、実行中のジョブを停止するか、試行して停止するかを決定する必要があります。それらを再度実行中としてマークします(コントローラーでupイベントが重複することになります)。

再接続後すぐにジョブを停止するだけでよいと思います。

Flynnはメンテナンスされておらず、インフラストラクチャは2021年6月1日にシャットダウンされます。詳細については、READMEを参照してください。

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

amingilani picture amingilani  ·  4コメント

michaelyork picture michaelyork  ·  5コメント

hadifarnoud picture hadifarnoud  ·  3コメント

deviousgeek picture deviousgeek  ·  7コメント

stela5 picture stela5  ·  5コメント