【问题标题】:Service Fabric long-term callbacksService Fabric 长期回调
【发布时间】:2016-03-16 19:50:12
【问题描述】:

我正在尝试找出开发可以维持某种长期回调策略的服务的最佳模式。例如,假设我有一个服务DoLongThingService。当您在此服务上调用 .Begin 时,它会安排执行一些较长的过程。该过程完成后,我需要它来唤醒第一个服务。基本上是长期工作流类型的东西。

这实际上对演员很有效。因为我可以将ActorReference 传递给DoLongThingService.Begin 方法,并且该服务可以Bind 那个actor,并在其上调用一个方法来表示完成。

但是当我不使用 Actors 时呢?如何将对一项服务的引用传递给另一项服务?第一个服务将是有状态的,因此它可以跟踪它的未完成请求。但是,可能会有多个有状态服务的实例四处浮动。那么如何才能将响应返回到正确的响应呢?

【问题讨论】:

    标签: azure-service-fabric


    【解决方案1】:

    服务 URI 和分区键可以唯一标识系统中服务的分区。您可以使用它来使用 ServicePartitionResolver 解析服务地址,或者如果您的服务实现了 IService,您可以使用此信息创建 ServiceProxy,如 ActorProxy 并将方法调用回服务。

    【讨论】:

    • 在调用回调的服务无法访问其调用者的 IActor 接口类型的情况下,如何执行此操作?它只是一个可以处理来自任何类型客户端的请求的服务,不需要明确知道它们是什么,也不能,除了它们支持单一类型的回调。我正在尝试设备一个看起来像这样的 API: ServiceProxy.Create().Begin(this.GetCallback(MethodName)) 本质上,调用服务,当它完成时,让它调用这个特定的方法名称来电者的。
    • 芥末 - 我也遇到了同样的问题,你有什么有用的吗?
    猜你喜欢
    • 2015-12-24
    • 2017-09-02
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    • 2019-11-30
    • 2023-03-27
    • 2019-04-17
    • 2018-03-07
    相关资源
    最近更新 更多