【问题标题】:service fabric actor timeout服务结构参与者超时
【发布时间】:2018-04-11 18:24:04
【问题描述】:

我有一个基于服务结构 OWIN 的 API,它正在调用服务结构参与者。 API 在返回响应之前等待参与者完成工作。有时演员可能需要很长时间才能完成。

Actor 的默认超时为 5 分钟,我尝试使用以下方法增加操作超时:

[assembly: FabricTransportServiceRemotingProvider(MaxMessageSize = 1073741824, OperationTimeoutInSeconds = 600)]

在 API 和参与者中。但它恰好在 5 分钟后抛出超时错误。有没有其他方法可以增加服务结构服务/参与者的超时时间?

以下是我在 API 端收到的错误:

"This can happen if message is dropped when service is busy or its long running operation and taking more time than configured Operation Timeout." 

【问题讨论】:

    标签: c# azure azure-service-fabric


    【解决方案1】:

    如果工作花费的时间比预期的还要长怎么办?您是否考虑过使这种异步/事件驱动?

    例如:

    1. 致电BeginProcessing,在 Actor 内安排提醒。返回一个 Job-token。
    2. 提醒触发,处理开始。
    3. 处理完成。
    4. 通知调用者(使用 SignalR 或类似方法),或在JobMonitorActor 上公开GetJobProgress 端点。使用 Job-token 进行关联。

    【讨论】:

    • 问题是——即使你在提醒中做你的工作——当它在提醒中处理时,对actor的调用也会超时。 -- 不幸的是,Service Fabric Reliable Actors 中没有真正的Tell 命令(或邮箱),因此,除非它们完全免费并且什么都不做,否则您无法向它们发送消息。 - 这是这个实现的一个巨大的缺点。 :(
    猜你喜欢
    • 2016-06-12
    • 2017-12-08
    • 2017-07-09
    • 2017-03-12
    • 2016-06-17
    • 2018-03-06
    • 2015-08-03
    • 2020-04-11
    • 2017-05-07
    相关资源
    最近更新 更多