ユーザーが操作するasp.net Webフォームアプリケーションがあります。ユーザーがサイトから特定のアイテムを選択し、処理のためにボタンをクリックしたとき。webapp は、ユーザーが選択した項目ごとに msmq にメッセージを追加します。
私が理解しようとしている部分:
ジョブがキュー (msmq) を処理する場合、2 番目のアプリケーションはどのタイプのアプリケーションにする必要がありますか。重要なのは、この 2 番目のアプリケーションは、asp.net webapp が [プロセス] ボタンがクリックされたことを通知するまでアイドル状態にしておく必要があるということです。その後、先に進み、キューをチェックして処理します。コマンドでのみキューをチェックするだけで、1分ごとにキューを常にチェックしたくありません。
Windows サービス、Web サービス、Web API? 現在、30 秒ごとにキューをチェックする Windows サービスがあります。常にチェックするのではなく、オンデマンドで動作させるにはどうすればよいですか?
ここでは、わずかに異なる言い方をしています。
ユーザーは .NET アプリケーションでアイテムを選択し、[プロセス] をクリックします。
.Net アプリケーションは、処理が必要なアイテムをキュー (msmq) に追加します。
追加のアプリケーションは、プロセス ボタンがクリックされ、キューの処理を開始する必要があることを .NET アプリケーションから通知されます。キューが処理されると、追加のアプリケーションはある種のアイドル モードに戻る必要があります。
ここで最も重要なことは、キューに項目があるかどうかを毎分チェックするタイマーを使用したくないということです。これにより、24 時間年中無休で実行されているリソースが消費されます。
msmq の特定の機能に慣れていない可能性があります。msmq がキューでメッセージを受信したことをサービスに伝え、先に進んでそれらを処理する方法はありますか。私の .net アプリケーションがサービスと通信するのではなく?