メッセージがAzureサービスバスキューに入力されるたびにトリガーされるAzure関数(古い.csx関数ではなく新しいC#関数に基づいています)があります。機能がトリガーされると、サービスバスメッセージの処理が開始されます。それは、メッセージをデコードし、データベースの束を読み、他人の束などを更新します。これは時々30分以上かかることがあります。同じサービスバスキューメッセージに対して複数回実行するAzure関数
これは時間に敏感なプロセスではないため、30分または60分でも問題にはなりません。問題は、一方、Azure関数は再び蹴り込み、同じメッセージを何度も繰り返しピックアップして再解析するように見えるということです。これは問題であり、ビジネスロジックに問題を引き起こします。
Azure関数を強制的にシングルトンモードで実行することはできますか?それができない場合は、どのようにポーリング間隔を変更するのですか?
機能サービスはAppサービスプランまたは消費計画の下で作成されましたか? App Service Planの下で、AlwaysOnがオンになっていることを確認します。消費計画の下では、機能アプリは5分後に終了します(10分まで延長可能、https://github.com/Azure/azure-webjobs-sdk-script/wiki/hostの「functionTimeout」の値を参照してください)。json)、これはあなたが見ている行動を説明するかもしれません。 –
私はApp Service Planを持っています。私の機能は終了していません。実際、その逆が起こっています。複数の機能がメッセージを処理しています。 – Yasir