gpt4 book ai didi

c# - 奥尔良无国籍 worker

转载 作者:行者123 更新时间:2023-11-30 13:36:05 25 4
gpt4 key购买 nike

我发现很难找到任何关于使用 StatelessWorkers 的详细文档。

我想实现类似于 this 的东西.正如文档中所建议的那样,我需要使用无状态 worker 来处理一些消息并激活最终将保持状态的 Cereal 。

我希望有一个调度程序 grain 的多个实例来处理“初始化”,因为这个 grain 决不会处理任何状态,并且消息不需要按顺序排队。

我需要将这个 grain 标记为 Reentrant 吗?或者 StatelessWorker(属性)就足够了吗?

关于激活,我似乎需要继承IGrainWithIntegerKey(或类似的接口(interface))。这意味着我需要按如下方式激活 Cereal :

GrainClient.GrainFactory.GetGrain<IDispatcherActor>(0)

既然我一直使用 0 作为 ID,grain 的多个实例是否仍会被激活?还是我需要创建不同的 ID。好像我不能这样称呼 Cereal :

GrainClient.GrainFactory.GetGrain<IDispatcherActor>()

即使我继承自 IGrain

最佳答案

简答

您可以通过继承 IGrainWithIntegerKey 并使用 key 0 创建一个无状态 worker。

长答案

无国籍 worker 与普通 Cereal 相同,但有几点不同:

  1. 它们总是在本地激活(与调用者在同一个筒仓中)。
  2. 如果对无状态 worker 激活的调用累积,则可以创建多个激活。

它们遵循相同的停用语义。

无状态 worker 拥有 key 可能令人惊讶,但 key 可能有用的原因有几个:

  1. 无状态 worker 激活可能有不同的“ flavor ”,这可能与其 key 有关。
  2. 可以通过使用一系列 key 对他们进行寻址来激活更多的无国籍 worker 。

但如果这些功能对您没有用,惯例是使用 0 键。

关于c# - 奥尔良无国籍 worker ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39837491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com