WebjobsがQueueTrigger経由でAzureストレージのキューからメッセージを取得すると、Webjobsはそのメッセージをリースします(見えなくなります)。 (webjobの)トリガー機能がメッセージを処理するのに時間がかかる場合、このリースは自動的に延長されますか?または、私はその機能でそれを処理する必要がありますか?このリンクWindows Azure Queues: Improved Leases, Progress Tracking, and Scheduling of Future WorkでWebjobsはAzure Queueメッセージで自動的にリースを更新しますか?
、著者は
注「それはメッセージの処理を継続できるように、メッセージのリースは、元のデキューをした労働者によって拡張することができます」と述べている:私はしました20分待っているWebジョブ(QueueTrigger付き)を試しました。
//Write Log
Thread.Sleep(1200000);
//Write Log
正常に完了しました。そしてこの間、他のWebジョブインスタンスは同じキュー項目を試そうとしませんでした(それは見えなくなりました)。したがって、リースの自動更新メカニズムが存在するようです。とにかく、Microsoftの従業員から、または公式のリンク(msdn、azure、...)からの回答を待っています。
その質問の答えの一つが私のものです。つまり、私はその質問と明らかに別の答えを見ました。そして私はまた、与えられたリンクを読んで、その例をずっと前にしました。 「あなたのリースは自動的に延長されています。毎回10分です。たぶん私は何かが恋しいです。この結論を終える段落を指定できますか? –
@NuriTasdemir申し訳ありませんが、私はポスターの名前を見ませんでした。あなたは正しいです、記事は時間の延長とそれがどれくらいあるかについて言及していません。そこで、私はGitHub(https://github.com/Azure/azure-webjobs-sdk/blob/master/src/Microsoft.Azure.WebJobs.Host/Queues/Listeners/QueueListener.cs)のソースコードを調べました。 10分のウィンドウは138行目にハードコードされています。その値はいくつかのメソッド呼び出しに渡され、メッセージを更新するタイマーの250行目に再び使用され、可視性のタイムアウトをリセットします。 – SvenAelterman
@ NuriTasdemir途中で視界のタイムアウトをリセットするので少し複雑です。したがって、処理時間の最初の5分後には、それを10分などに延長します。 'LinearSpeedupStrategy'などを介して' UpdateQueueMessageVisibilityCommand'を使用しています。しかし結論として、WebJobの代わりに10時間毎回分。 – SvenAelterman