Azureサービスファブリックのステートレスサービスが、一定期間後にActorプロキシでメソッドを呼び出そうとしているときに、エラーログでAzureサービスファブリックのステートレスサービスでMicrosoft.ServiceFabric.Actors.Runtime.DuplicateMessageException
が検出されました。俳優は走るのに時間がかかります。例外の完全なメッセージでした:Microsoft.ServiceFabric.Actors.Runtime.ActorConcurrencyLock回以上 同じ要求を得たAzureサービスファブリックのアクタのタイムアウトを増やす方法はありますか?
俳優。これは、 が、コンフィグレーションされたOperationTimeoutよりも処理時間が長くかかる要求の場合に発生する可能性があります。 クライアント側はTimeoutExceptionで再試行します。
この値を設定できる場所はどこにもありません。私はthe documentation for the FabricTransportSettings
classの参照を参照していますが、そのタイプがどこで使用されているのかわかりません。
私たちのアクターメソッドは実行に時間がかかる(しばしば数分かかる)ので、このエラーが実際にタイムアウトに関連している場合、どのようにOperationTimeoutを増やしますか?
私はアーキテクチャの観点から良い提案だと思うと、私は間違いなくよやってみて。残念ながら、それは本当に質問に答えるわけではないので、私は答えとしてマークすることはできません。タイムアウトを増やすことは可能ですか?もしそうなら、どのように? – Paul
私はFabricTransportSettingsへの変更のために、ワイヤの両端(リクエスタと受信側のリスナ)で変更を加えなければならないと言った何かを読んでいることを覚えています –
私は最近遭遇しましたこの問題も同様です。私はタイムアウトを増やさず、代わりに俳優を解雇し、長時間実行されるタスクのタイマーを設定し、作業が完了したときの通知を受け取るために呼び出し元のサービスから購読可能なアクターベースのイベントを使用しました。アクターイベントの詳細については、https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reliable-actors-eventsをご覧ください。 –