当前位置: 首页 > 知识库问答 >
问题:

如何有效地使用Worker,WorkflowClient

幸鸿轩
2023-03-14

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

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

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

我可以为每个用户创建一个WorkflowClient来服务他所有的工作流执行吗?或者对于每个请求,我需要创建一个工作流客户端吗?哪一个是推荐的方法?

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

如果我问了什么没有意义的问题,请不要误会我

共有2个答案

呼延卓
2023-03-14

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

邵文乐
2023-03-14

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

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

我可以为每个用户创建一个WorkflowClient来服务他所有的工作流执行吗?或者对于每个请求,我需要创建一个工作流客户端吗?哪一个是推荐的方法?

为每个域使用一个WorkflowClient,但让同一实例上的所有Workflow客户端共享相同的TChannelService以保存TCP连接。

 类似资料:
  • 问题内容: 是否有一种使用Go下载大文件的方法,该方法会将内容直接存储到文件中,而不是将所有内容都存储到内存中再写入文件?由于文件太大,因此在将其全部写入内存之前将其全部存储在内存中将耗尽所有内存。 问题答案: 我假设您的意思是通过http下载(为简便起见,省略了错误检查): http.Response的主体是阅读器,因此您可以使用带有阅读器的任何功能,例如一次读取一个块,而不是一次读取所有块。在

  • 问题内容: 我一直在PHP代码中使用try..catch块,但不确定是否已正确使用它们。 例如,我的一些代码如下所示: 因此,我将多个数据库操作分组在同一try / catch块中,因为如果任何事务中发生任何异常,我将能够处理它。 我这样做是因为我认为它比: 虽然,我不确定我在做什么是好的习惯还是只是捕获异常的一种懒惰方式。 我的假设是,仅当异常需要特殊处理时,它才应具有自己的try / catc

  • 问题内容: 我有大量要搜索的小文件。我一直在寻找一个良好的事实上的多线程版本,但找不到任何东西。如何改善grep的用法?截至目前,我正在这样做: 问题答案: 如果在多核处理器上安装了xargs,则可以从以下内容中受益,以防万一有人感兴趣。 环境: 测试: 1.找到必要的文件,将它们通过管道传递到xargs,并告诉它执行8个实例。 2.找到必要的文件,将它们通过管道传递到xargs,并告诉它执行4个

  • 问题内容: 我必须处理一个很大的结果集(可能是数十万行,有时更多)。 不幸的是,它们需要一次全部检索(在启动时)。 我正在尝试通过使用尽可能少的内存来做到这一点。 通过查看SO,我发现使用可能是我想要的,但我仍然不太了解如何正确使用它们。 正在做一个从基光标或SScursor相同的(在内存使用的术语)? 我可以一排(或几排)从sscursor的行中“流化” 吗?如果是,这样做的最佳方法是什么? 问

  • 我正在做一个项目,在这个项目中,我需要对运行

  • 给定一个由整数和一个数字组成的数组,,对该数组执行左旋转。然后将更新后的数组打印为单行空格分隔的整数。 示例输入: 如何使用更少的内存来解决这个问题?