Azure Web ロールとしてホストされている ASP.NET MVC 4 アプリがあります。私は、かなり標準的であるように思われることをしたいと考えています。VIP スワップ操作が完了したときに、VIP スワップを開始し、イベントを発生させる (またはコールバックを呼び出す) 呼び出し可能な関数を作成したいと考えています。
状況にいくつかのコンテキストを追加するだけです: 私の Web サイトは、完了するのに約 1 時間 (またはそれ以下) かかるワークフローを実装しています。新しいバージョンの Web サイト コードをリリースしたい場合、最初に現在のすべてのユーザーにワークフローを完了させて、新しいコードを処理する必要がないようにするのが便利です (つまり、「後方互換性」コードを記述する必要はほとんどありません)。以前のバージョンのコードで作成されたデータ。したがって、私の Web サイトの管理機能は、最初に新しいワークフローを無効にする値をデータベースに挿入します。その後、現在のすべてのワークフローが完了するまで待機します。次に、「VIP スワップ」ルーチンを呼び出します。最後に、VIP スワップ ルーチンが完了を知らせると、データベースの値を突いて新しいワークフローを再度有効にします。
プログラムで VIP スワップを開始する方法に関する Microsoft のドキュメントを見つけました: http://msdn.microsoft.com/en-us/library/ee460814.aspx
この手順では、マジック URL に POST し、POST にいくつかのヘッダーを含めてから、マジック URL に対して定期的に GET を実行し、応答コードをチェックします。
これについて考えれば考えるほど、それは自明ではないように思えます。バックグラウンド タイマーと完了通知を接続するという基本的な複雑さに加えて、IIS 環境でこれを実行しようとすると、どのような複雑さが発生するかわかりません。バックグラウンド スレッドで HTTP 操作を実行することはできますか? さらに言えば、.NET に組み込まれている 6 つほどの異なる "バックグラウンドで処理を行う" メカニズムのいずれかを使用しようとすると、問題が発生するでしょうか?
ヘルプやガイダンスをいただければ幸いです。特に、誰かがこの関数のすぐに使える実装を教えてくれたら嬉しいです!