9

Azureメッセージバスキューに問題があります。

MessageLockLostExceptionスローしましたが、割り当てられたタイムアウト00:01:10内にリクエスト操作が完了しませんでした。この操作に割り当てられた時間は、より長いタイムアウトの一部であった可能性があります

キューをに設定しましたReceiveMode.PeekLock

私もチェックします

if(message.LockedUntilUtc.Minute <= 1)
    message.RenewLock();

なぜこれが起こるのでしょうか、何が原因でロックが解除されますか?私はあなたが受け取るところからどこかで読んでいましたあなたはデフォルトで5分あります。通常、このプロセスには少し時間がかかります。ロックを更新したかったのですが、うまくいきません。

4

1 に答える 1

20

LockDurationは Queue のプロパティです。通常、キューを作成するときにこれを設定します。これはQueueレベル プロパティであり、メッセージ ベースでは変更できません。あなたが読んだことは、おそらく、この期間は 5 分を超えてはならないということです。デフォルト値は 1 分です。これが問題に直面する理由です。なぜ 70 秒後に直面するのか - この条件をチェックするロジックは 10 秒ごとに実行されると仮定します。

そのため、キューを作成または変更して、LockDurationプロパティを 5 分に設定することをお勧めします。次に、必要に応じてメッセージのRenewLockを実行します。

于 2013-03-08T23:35:07.240 に答える