Azure関数V2のメッセージを延期する:指定されたロックが無効です

hwcverwe

私の紺碧の機能では、ある時点でメッセージを延期したいと思います。しかし、そうすると、例外が発生します。

[7/30/2020 5:59:02 PM] Message processing error (Action=Complete, ClientId=MessageReceiver1UserCreated/Subscriptions/MySubscription, EntityPath=UserCreated/Subscriptions/MySubscription, Endpoint=xxxxxxxxxxx.servicebus.windows.net)
[7/30/2020 5:59:02 PM] Microsoft.Azure.ServiceBus: The lock supplied is invalid. Either the lock expired, or the message has already been removed from the queue, or was received by a different receiver instance.

これは私のコードです

[FunctionName("UserCreated")]
public static async Task Run([ServiceBusTrigger("UserCreated", "MySubscription", Connection = "ServiceBusConnectionString")]UserCreated userCreated, ILogger log, string lockToken, MessageReceiver messageReceiver)
{
    //some logic.....

    await messageReceiver.DeferAsync(lockToken);
}

正直なところ、私は自分が間違っていることの手がかりがありません。コード例IDが見つかり、このStackOverflow:Azure Function V2 Service Busメッセージの延期の投稿も役に立ちません。

関数が完了すると、メッセージが自動的に完了することを理解しています。そのため、オートコンプリートを無効にしようとしましたが、そこでも有効な解決策を見つけることができませんでした。

パッケージの使用:

  • Microsoft.Azure.WebJobs.Extensions.ServiceBus 4.1.0
    • (参照)Microsoft.Azure.ServiceBus 4.1.1
hwcverwe

すべての回答に感謝しますが、実際に本当の原因を説明したものはありません。

TL; DR

メッセージを自分で完了、延期、破棄、または削除する場合はファイルのオートコンプリートを無効にする必要がありhost.jsonます。

根本的な原因

ロックが無効である理由は次のとおりです。

指定されたロックは無効です。ロックの有効期限が切れているか、メッセージがすでにキューから削除されているか、別のレシーバーインスタンスによって受信されました。

私の場合、メッセージは使用してからすでに「削除」されています messageReceiver.DeferAsync(lockToken);

つまり、このステートメントの後、関数はメッセージを自動的に完了します(これはすでに延期されています)。

したがって、メッセージのオートコンプリートを無効にする必要があります。

解決

でオートコンプリートを無効にする host.json

"extensions": {
  "serviceBus": {
    "messageHandlerOptions": {
      "autoComplete": false
    }
  }
}

注意してください

オートコンプリートを無効にするときは、メッセージを処理する責任があります。常に決定を下す必要があります。そうしないと、ロックのタイムアウト後にメッセージが再び使用可能になります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Google Map Api v2のログに「V / GoogleSignatureVerifier:署名が無効です」というエラーメッセージが表示される

分類Dev

Google Map Api v2のログに「V / GoogleSignatureVerifier:署名が無効です」というエラーメッセージが表示される

分類Dev

Microsoft.Azure.ServiceBus:指定されたロックが無効です。ロックの有効期限が切れているか、メッセージがすでにキューから削除されています

分類Dev

「指定されたロックが無効です」というメッセージが表示されるのはなぜですか。LockTockenを使用してキューメッセージを削除しようとするとエラーが発生します

分類Dev

指定されたロックは無効です。ロックの有効期限が切れているか、メッセージがすでにキューから削除されています

分類Dev

Azure Service Busキューでメッセージを再送信すると、メッセージロックトークンの有効期限が切れました

分類Dev

msgsndからの無効な引数を引き起こす2つのフォークされたプロセス間のメッセージキュー

分類Dev

InvalidSelectorException:メッセージ:無効なセレクター:Seleniumでdivng-click要素をクリックすると無効または不正なセレクターが指定されました

分類Dev

Azure関数:公開が失敗し、「外部プロセスによってロックされているため、Webデプロイは宛先のファイルを変更できません。」というメッセージが表示されます。

分類Dev

スペックフローステップ定義レポートを生成しようとすると、「オブジェクトの現在の状態が原因で操作が無効です」というエラーメッセージが表示されました。

分類Dev

Mockito:指定されたチェック済み例外をスローすると、「チェック済み例外はこのメソッドでは無効です」

分類Dev

メッセージの動作を延期する並列処理と制限された容量を使用してブロックを変換する

分類Dev

「System.UriFormatException:無効なURI:無効なポートが指定されました」というメッセージが表示されるのはなぜですか。IPv6 URIを使用する場合は?

分類Dev

React警告を解決する方法:oneOfTypeに無効な引数が指定されました。チェック関数の配列が必要ですが、インデックス2で未定義を受け取りました。

分類Dev

無効にされたAzure関数は、引き続きAzureストレージキューからメッセージをプルします

分類Dev

Azure Logicが「メッセージがキューで受信されたとき(ピークロック)」「次が利用可能」がキューメッセージを取得するのに長い間待機するのはなぜですか?

分類Dev

例外がスローされた場合にexternC ++関数がメッセージを返すようにする

分類Dev

「InvalidCastException:指定されたキャストが無効です」というメッセージが表示されるのはなぜですか。タイプをインターフェイスにキャストしようとしたとき

分類Dev

行列変数を有効にしたいのですが、メッセージが表示されます

分類Dev

送信ボタンを無効にするJavaScriptが追加された場合、クライアント側の検証メッセージが表示されない

分類Dev

View()関数またはedit()関数のいずれも使用できず、「。External2(C_dataviewer、x、title)のエラー:無効なデバイス」エラーメッセージが表示されます

分類Dev

指定していないのに「統合セキュリティは無効な属性エラーです」というメッセージが表示される

分類Dev

Camel:エラー状態が解決されるまでActiveMQメッセージを延期します

分類Dev

かすれたスクリプトでメッセージのログを無効にすることはできません

分類Dev

このジェネリック関数のtypeパラメーターが指定された型を受け入れないのはなぜですか?

分類Dev

「要素タイプが無効です:文字列(組み込みコンポーネントの場合)またはクラス/関数(複合コンポーネントの場合)が必要です...」というメッセージが表示されるのはなぜですか?

分類Dev

RabbitMQのSpringSimpleMessageListenerContainerが無効なメッセージで中止されます

分類Dev

RabbitMQで保持されているMQTTメッセージを無効にする

分類Dev

Springが指定された言語とは異なる言語のメッセージをロードするのはなぜですか?

Related 関連記事

  1. 1

    Google Map Api v2のログに「V / GoogleSignatureVerifier:署名が無効です」というエラーメッセージが表示される

  2. 2

    Google Map Api v2のログに「V / GoogleSignatureVerifier:署名が無効です」というエラーメッセージが表示される

  3. 3

    Microsoft.Azure.ServiceBus:指定されたロックが無効です。ロックの有効期限が切れているか、メッセージがすでにキューから削除されています

  4. 4

    「指定されたロックが無効です」というメッセージが表示されるのはなぜですか。LockTockenを使用してキューメッセージを削除しようとするとエラーが発生します

  5. 5

    指定されたロックは無効です。ロックの有効期限が切れているか、メッセージがすでにキューから削除されています

  6. 6

    Azure Service Busキューでメッセージを再送信すると、メッセージロックトークンの有効期限が切れました

  7. 7

    msgsndからの無効な引数を引き起こす2つのフォークされたプロセス間のメッセージキュー

  8. 8

    InvalidSelectorException:メッセージ:無効なセレクター:Seleniumでdivng-click要素をクリックすると無効または不正なセレクターが指定されました

  9. 9

    Azure関数:公開が失敗し、「外部プロセスによってロックされているため、Webデプロイは宛先のファイルを変更できません。」というメッセージが表示されます。

  10. 10

    スペックフローステップ定義レポートを生成しようとすると、「オブジェクトの現在の状態が原因で操作が無効です」というエラーメッセージが表示されました。

  11. 11

    Mockito:指定されたチェック済み例外をスローすると、「チェック済み例外はこのメソッドでは無効です」

  12. 12

    メッセージの動作を延期する並列処理と制限された容量を使用してブロックを変換する

  13. 13

    「System.UriFormatException:無効なURI:無効なポートが指定されました」というメッセージが表示されるのはなぜですか。IPv6 URIを使用する場合は?

  14. 14

    React警告を解決する方法:oneOfTypeに無効な引数が指定されました。チェック関数の配列が必要ですが、インデックス2で未定義を受け取りました。

  15. 15

    無効にされたAzure関数は、引き続きAzureストレージキューからメッセージをプルします

  16. 16

    Azure Logicが「メッセージがキューで受信されたとき(ピークロック)」「次が利用可能」がキューメッセージを取得するのに長い間待機するのはなぜですか?

  17. 17

    例外がスローされた場合にexternC ++関数がメッセージを返すようにする

  18. 18

    「InvalidCastException:指定されたキャストが無効です」というメッセージが表示されるのはなぜですか。タイプをインターフェイスにキャストしようとしたとき

  19. 19

    行列変数を有効にしたいのですが、メッセージが表示されます

  20. 20

    送信ボタンを無効にするJavaScriptが追加された場合、クライアント側の検証メッセージが表示されない

  21. 21

    View()関数またはedit()関数のいずれも使用できず、「。External2(C_dataviewer、x、title)のエラー:無効なデバイス」エラーメッセージが表示されます

  22. 22

    指定していないのに「統合セキュリティは無効な属性エラーです」というメッセージが表示される

  23. 23

    Camel:エラー状態が解決されるまでActiveMQメッセージを延期します

  24. 24

    かすれたスクリプトでメッセージのログを無効にすることはできません

  25. 25

    このジェネリック関数のtypeパラメーターが指定された型を受け入れないのはなぜですか?

  26. 26

    「要素タイプが無効です:文字列(組み込みコンポーネントの場合)またはクラス/関数(複合コンポーネントの場合)が必要です...」というメッセージが表示されるのはなぜですか?

  27. 27

    RabbitMQのSpringSimpleMessageListenerContainerが無効なメッセージで中止されます

  28. 28

    RabbitMQで保持されているMQTTメッセージを無効にする

  29. 29

    Springが指定された言語とは異なる言語のメッセージをロードするのはなぜですか?

ホットタグ

アーカイブ