我正在创建一个可靠的、有状态的服务参与者。
问题:
有没有办法在actor代理创建期间传递初始化数据(ActorProxy.Create()
)?基本上相当于我的演员的构造函数。
目前的想法:
我可以通过使用负责初始化状态的参与者方法调用来跟踪代理创建调用来实现这一点。
例如
//Danger, the following calls are not atomic
ITokenManager tokenActor = ActorProxy.Create<IMyActor>(actorId, "AppName");
//Something could happen here and leave my actor in an unknown state
await tokenActor.InitializeAsync(desiredInitialState);
我对这种方法的担忧:
- 这个操作不是原子的。它可能会使我的演员处于不一致的状态
- 这种初始化方法现在在 Actor 的整个生命周期中都可用,这是不希望的。