我正在努力找出开发服务的最佳模式,该服务可以维持某种长期回调策略。例如,我们说我有服务DoLongThingService
。当您在此服务上调用.Begin
时,它会安排执行一些长时间的过程。当过程完成后,我需要它来唤醒第一个服务。基本上是长期工作流程类型的东西。
这实际上与演员合作很好。因为我可以将ActorReference
传递给DoLongThingService.Begin
方法,并且该服务可以Bind
该actor,并在其上调用方法来表示完成。
但是当我不使用Actors的时候呢?如何将对一个服务的引用传递给另一个服务?第一项服务将是有状态的,因此它可以跟踪它的未完成请求。但是,可能存在多个有状态服务的实例。那么如何才能将响应恢复到正确的状态呢?
答案 0 :(得分:0)
服务URI和分区键可以唯一地标识系统中服务的分区。您可以使用它来使用ServicePartitionResolver解析服务地址,或者如果您的服务实现了IService,您可以使用此信息来创建类似ActorProxy的ServiceProxy并将方法调用返回给服务。