依存するスケジュールされたタスクの適切な処理?
-
05-07-2019 - |
質問
AとBの2つのスケジュールされたプロセスがあるとします。
Aが完了するまでBを実行してはならないことを考えると、どうすればこの依存関係を適切に実施できますか?
考慮されているアプローチ:
-
完了時にスケジュールBを作成します。何らかの理由でAが失敗した場合、これにはBのマイナス面がスケジュールされません。
-
Bの実行時に、Aにpingを実行して、後者が完了したかどうかを確認します。これをどのように達成するか(ネットワーク、ファイル、データベースレコード、メッセージキュー)は、3番目の依存関係を導入するのが面倒で問題がある可能性があります。
-
AとBを単一のプロセスに結合します。これには、2つを緊密にバインドするという欠点があり、必要に応じて1つまたは他を分離して再実行するのが難しくなります。
思考?
解決
オプション1があなたの質問に直接答えます。BがAに依存していて、Aが失敗した場合、AがBをスケジュールしないということは、Bが発生しないことを意味します。
Aが成功したかどうかにかかわらず、BがAの後に単に実行する必要がある場合を除きます。
その場合、次のようなものが(bashで)動作します:
A && B
他のヒント
ステップ3を変更することができます。2つのプロセスを個別に実行するように作成してから、他の2つを実行する3番目のプロセスを作成します。
所属していません StackOverflow