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

Uber Cadence中的子工作流有什么好的用例?

商夜洛
2023-03-14

我试图了解Uber Cadence的子工作流的用例。与简单地将工作流拆分为函数相比,子工作流的优势是什么?我有一个相当复杂的工作流,我正在考虑将其拆分为多个子工作流,但我不确定这样做的利弊。

共有1个答案

嵇俊德
2023-03-14
  • 子工作流可以由一组单独的工作线程托管,这些工作线程不包含父工作流代码。因此,它将充当可以从多个其他工作流调用的单独服务。
  • 单个工作流的大小有限。例如,它不能执行 100k 个活动。子工作流可用于将问题划分为更小的块。一个父母有1000个孩子,每个孩子执行1000个活动,执行100万个活动。
  • 子工作流可用于使用其 ID 来管理某些资源,以确保唯一性。例如,管理主机升级的工作流可以为每个主机设置一个子工作流(主机名是工作流 ID),并使用它们来确保序列化主机上的所有操作。
  • 子工作流可用于执行一些周期性逻辑,而不会增加父历史记录大小。父级启动一个子级,该子级执行定期逻辑调用,根据需要多次继续调用,然后完成。从父点来看,如果它只是一个子工作流调用。

与将所有应用程序逻辑放在一个工作流中相比,子工作流的主要限制是缺少共享状态。父母和孩子只能通过异步信号进行交流。但是如果它们之间存在紧密的耦合,那么使用单个工作流并仅仅依赖于共享的对象状态可能会更简单。

如果您的问题在执行的活动和处理的信号数量方面有限制,我个人建议从单个工作流实现开始。它只是比多个异步通信的工作流简单。

此外,经常被监督的是,工作流不仅仅是功能,您可以在其中使用OO的全部功能。使用结构、接口和其他OO技术将逻辑分解为更易于管理的抽象。

 类似资料:
  • 问题内容: 我有种预感docker可以极大地改善我的webdev工作流程- 但我还没有设法解决如何将docker添加到堆栈中的问题。 基本软件堆栈如下所示: 软件 提供自定义LAMP堆栈的Docker映像 Apache与几个模块 MySQL数据库 的PHP 一些CMS,例如Silverstripe GIT 工作流程 我可以想象工作流程看起来如下所示: 发展历程 编写一个定义满足上述要求的LAMP容

  • 通过“隐式”流,在资源所有者(即用户)给予访问权之后,客户端(可能是浏览器)将获得一个访问令牌。 然而,对于“授权代码”流,客户端(通常是web服务器)仅在资源所有者(即用户)给予访问权之后才获得授权代码。使用该授权代码,客户机然后对API进行另一次调用,传递client_id和client_secret以及授权代码,以获得访问令牌。这里都有很好的描述。 这两个流具有完全相同的结果:访问令牌。不过

  • 使用“隐式”流,在资源所有者(即用户)给予访问权限后,客户端(可能是浏览器)将获得访问令牌。 然而,在“授权代码”流程中,客户端(通常是web服务器)只有在资源所有者(即用户)给予访问权限后才获得授权代码。使用该授权代码,客户机然后对API进行另一次调用,将client_id和client_secret与授权代码一起传递,以获得访问令牌。这里都描述得很好。 问题是:当“隐式”流接缝很好时,为什么还

  • 问题内容: 我正在尝试使用子过程执行简单的回显操作: 但是它什么也不打印。即使我将命令更改为它也不会打印任何内容。任何帮助表示赞赏。 问题答案: 在Unix上,第2个及以下参数表示外壳本身,请使用字符串将命令传递给外壳: 您也可以将其编写为: 从子流程的文档: 在带有的Unix上,shell默认为/ bin / sh。如果args是字符串,则该字符串指定要通过外壳执行的命令。这意味着字符串的格式必

  • 本文向大家介绍react中的key有什么作用?相关面试题,主要包含被问及react中的key有什么作用?时的应答技巧和注意事项,需要的朋友参考一下 https://www.cnblogs.com/wonyun/p/6743988.html

  • 本文向大家介绍CSS中的calc()有什么作用?相关面试题,主要包含被问及CSS中的calc()有什么作用?时的应答技巧和注意事项,需要的朋友参考一下 calc使得开发者能够使用四则运算表达式来填写CSS属性。 px、%、em等不同单位的数值均可参与计算,浏览器会进行自动转换。 MDN