簡體   English   中英

如何增加Azure Service Fabric Actor的超時?

[英]How to increase timeout for an Azure Service Fabric Actor?

我在錯誤日志中發現,我們的Azure Service Fabric無狀態服務在一段時間后嘗試在Actor代理上調用方法時遇到了Microsoft.ServiceFabric.Actors.Runtime.DuplicateMessageException 演員可能需要一段時間才能跑步。 異常的完整消息是:

Actor Microsoft.ServiceFabric.Actors.Runtime.ActorConcurrencyLock多次收到相同的請求。 當客戶端重試TimeoutException時,與在客戶端配置的OperationTimeout相比,它需要更多處理時間的請求可能會發生這種情況。

我看不到任何可以配置此值的地方。 FabricTransportSettings類的文檔中看到了對它的引用,但我無法確定在哪里使用了該類型。

由於我們的actor方法運行需要一段時間(通常是幾分鍾),因此,如果此錯誤確實與超時有關,那么如何增加OperationTimeout?

我會考慮更改actor的工作方式,因為您使用所需的參數初始化和“植入” actor。 然后觸發計時器以執行長時間運行的工作。 然后重新查詢參與者,直到工作完成並檢索結果。

使用系統中的參與者,我們有幾個長期運行的工作負載,我們設置為以這種方式工作

您可以在程序集級別設置“超時”值。

using Microsoft.ServiceFabric.Services.Remoting.FabricTransport;
[assembly: FabricTransportServiceRemotingProvider(MaxMessageSize = int.MaxValue,OperationTimeoutInSeconds =2000)]

也許您應該考慮將以下部分放入Settings.xml文件中:

<Section Name="TransportSettings">
    <Parameter Name="MaxMessageSize" Value="1073741824" />
    <Parameter Name="OperationTimeoutInSeconds" Value="6000" />
</Section>

來源: https : //docs.microsoft.com/zh-cn/azure/service-fabric/service-fabric-reliable-actors-fabrictransportsettings

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM