連続したWebジョブを一時停止する方法はありますか?サービスバスからのメッセージの受信を一定時間間隔で停止する方法はありますか? 私は常にポストデータを受信しているシステムを持っています。次に、転記されたデータがサービスバスに送信されます。私は、メッセージの処理を止める方法があるのだろうかと思っています。もちろん、もう1つの解決策は、それらのメッセージを送信しないことです。送信者システムのキューにそれらのメッセージを保管します。Azureサービスバス連続WebJobポーズ
答えて
アプリケーション設定でWEBJOBS_STOPPEDを1に設定すると、Webジョブを停止できます。それは少し原油ですが、それはwebjobを停止します。
すでにキューイングメカニズムがあります。サービスバス。 ServiceBusTrigger属性を使用して、宣言的にキューに接続しているようです。すなわち
public static void ProcessQueueMessage([QueueTrigger("queue")] string message, TextWriter log)
これは、連続したWebジョブでメッセージを受信する唯一の方法ではありません。あなたは同じように簡単にこれらのメッセージを受信するQueueClientオブジェクトを使用することができます。
var connectionString = "//connection string here//";
var queueName = "samplequeue";
var client = QueueClient.CreateFromConnectionString(cnStr, queueName);
client.OnMessage(message =>
{
string msg = message.GetBody<string>();
// Process message here...
});
Console.ReadLine();
(詳細については、https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-dotnet-get-started-with-queuesを参照してください。)
をだからあなたのwebjobに、あなたは2台のバスを聞くことができます:最初は操作可能ですビジネスメッセージを処理するために既に使用しているバスです。新しいトピックはコントロールバスです。常にリスニングしていますが、操作キューの動作を変更する場合は、メッセージを送信するだけです。
"START"をコントロールバスに送ります。そのメッセージを受信すると、上記のコードが呼び出され、運用バスがメッセージの処理を開始します。
処理を停止したい場合は、コントロールバスに "STOP"を送信します。このメッセージが受信されたら、運用バス上のclient.Close();
に電話してください。これにより、次の「START」メッセージが受信されるまで、メッセージの処理が一時停止されます。
もちろん、これを拡張することもできます。たとえば、制御バスに「PAUSE 10 MINUTES」を送信すると、バスが停止し、10分後に再起動するようにタイマーを設定できます。あなたはあなたの想像力によって制限されています!
個人的には、平凡なテキストではなくJsonメッセージを使用しますが、あなたのニーズに合ったものを使用します。
- 1. 連続したAzure WebJob with Http Triggered Functions
- 2. PythonでAzureサービスバスに接続
- 3. AzureのWebJobストレージ接続
- 4. 連続WebJobの最大CPU%
- 5. ServiceBusTrigger WebJobの異なるサービスバス接続文字列
- 6. Azure WebJobからオンプレミスSQLデータベースに接続
- 7. サービスバスAzure App Services
- 8. Azureサービスバス3.2.2 BeginReceive()
- 9. Azureサービスバスのデッドレターキュー
- 10. AzureサービスバスC#アーキテクチャ
- 11. Azureサービスバスのコンシューマーメッセージングパターン
- 12. ウェブサイト+連続Webjob用のARMテンプレート
- 13. サービスバスのルートマネージャのsasキーを再生成しても、連続したwebjobに例外はありません
- 14. Azure Webjob - OutOfMemoryError:Javaヒープスペースエラー
- 15. Azure WebJobデプロイメントエラーMissingRegistrationForLocation
- 16. Azure WebJobスケジュール
- 17. Azureサービスバス - TTL with ScheduledEnqueueTimeUtc
- 18. SignalR Azureクラウドサービスとサービスバス
- 19. .NET CoreのAzure WebJob
- 20. Azure WebJobホスティング環境
- 21. Azure AppサービスVS WebJob
- 22. Azure WebJobストレージ例外
- 23. Azure WebJobのベスト・アプローチ
- 24. Azure WebJobs Azureサービスバスからのマルチインスタンス
- 25. Azure BlobストレージからAzureサービスバスへのメッセージ
- 26. Azureサービスバスのシリアル化タイプ
- 27. Azure NodeJS関数とサービスバス、デッドレターメッセージ
- 28. azureサービスバスとダイナミクスcrm統合
- 29. Azureサービスバス経由のSignalR
私は時間枠を作成し、時間枠が現在の時刻と一致するかどうかを確認して一致するかどうかを確認すると思います。 – 4c74356b41
はい、私はまだメッセージを受信しています。最も洗練されたソリューションではないようです。たぶん最高のメッセージを送信することさえありませんが、私はキューイングのメカニズムを実装するために時間を費やしたくないので、より良い方法があるかどうか疑問に思っています –
あなたのwebjobはservicebustriggerを使用していますか? – Thomas