0

WindowsAzureアプリケーションでジョブスケジューラメソッドを実行したい。したがって、私のアプリケーションでは、同じアプリケーションの2つのインスタンスを使用しています。したがって、スケジューラーを作成すると、両方のインスタンスが同じコードを実行できることを意味します。そのような実行を回避することは可能ですか?または、コードを実行する前に他のインスタンスをチェックすることは可能ですか?実装には、c#.Netを使用しています。

4

1 に答える 1

1

最も一般的なパターンは、自己選択型コントローラーです。このパターンでは、これらのプロセスが開始すると、blobオブジェクトなどの何かに排他的リースを作成しようとします。リースを取得するための最初のプロセスは、実行する必要のある処理を実際に実行するプロセスです。また、定期的にリースを更新して、「コントローラー」のままであることを確認します。リースの取得に失敗したインスタンスは、スリープ状態になり、後で(分、秒、時間など)チェックして、今すぐリースを取得してコントローラーになることができるかどうかを確認します。これにより、元のコントローラーがクラッシュまたはシャットダウンされ、別のインスタンスがコントローラーの役割を引き継ぐことができます。

于 2012-06-20T15:41:12.447 に答える