可靠的演员 - 在所有实例之间共享一个集合?

时间:2017-09-07 23:50:41

标签: azure-service-fabric stateful-actor-service

目前,我产生了一堆演员来做一些长时间运行的任务。我将这些放入List中,然后调用Task.WaitAll()来收集结果。

但是,我希望在每个Actor完成其任务时收集结果(而不是等待每个actor完成并在最后聚合它)。

我在考虑使用可靠的集合,但如何在所有演员之间共享可靠的集合呢?

谢谢!

1 个答案:

答案 0 :(得分:1)

演员是设计上的独立实体,因此您不能简单地在多个实例之间“共享”集合。我想到了几个解决方法 -

  • 产生一个具有固定身份证的专职演员,让其他演员在完成工作后与这个演员沟通
  • 创建一个单独的有状态服务,您的actor将访问该服务以存储所需的数据
  • 拥有一个单独的资源,如EventHub,以监听演员在任务完成时将生成的事件