如何有效使用Worker、WorkflowClient

问题描述

产品用例 - 我们的产品有一个典型的用例,即我们将拥有 n 个用户。每个用户将拥有 n 个工作流,并且每个工作流都可以在任何时间(n 次)运行。

我希望这是任何工作流产品的典型用例。

我可以使用域来区分用户吗(我的意思是说为每个用户创建一个域)?

我可以为每个用户创建一个 WorkflowClient 来为其所有工作流执行提供服务吗?或者我是否需要为每个请求创建一个 WorkflowClient?哪一种是推荐的方法

创建 Worker 对象以轮询任务列表的推荐方法是什么?

如果我问了什么毫无意义的事情,请不要误会我

解决方法

我可以使用域来区分用户吗(我的意思是说为每个用户创建一个域)?

是的,特别是当这些用户在不同的团队或产品中工作时,使用不同的域将避免工作流名称/ID 相互冲突,并且还分配独立数量的配额来管理流量。

我可以为每个用户创建一个 WorkflowClient 来为其所有工作流执行提供服务吗?或者我是否需要为每个请求创建一个 WorkflowClient?哪一种是推荐的方法?

每个域使用一个 WorkflowClient,但让同一实例上的所有 WorkflowClient 共享同一个 TChannelService 以节省 TCP 连接。

,

我会从所有用户的单个命名空间(域)开始。除非您的用户直接操作他们的工作流实现,否则使用多个命名空间不会给您带来太多好处。