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

我们能说活动在节奏或时间上是容错的吗

穆锋
2023-03-14

我有两个名为 w1 和 w2 的工人

W1主持活动A1。

如果w1出现故障,它是否会在w2上自动创建以处理服务器故障转移?

我试了一下,但是显示ActivityTimeOut错误,工作流失败。

难道我们没有其他选择来处理这样的故障转移吗?

在这种情况下,活动不会超时。由于工作机崩溃,它没有在预期时间内响应cadence服务。这是将它称为ActivityTimeOut的正确方法吗?相反,难道我们不能像对待工人阶级那样对待它吗?

共有2个答案

薛文斌
2023-03-14

默认情况下,“踏频”不会为活动提供“重试选项”。因此,如果它超时或失败,工作流将收到失败,如果未处理,则将失败。如果要重试某个活动,则必须在调用它时提供重试选项。

默认情况下,Temporal为任何活动提供RetryOption。因此默认情况下会重试。

此时,Cadence和Temporal都不会直接对工作崩溃做出反应。它们依靠活动超时来检测任何此类故障。因此,在调用活动时,指定正确的StartToClo超时至关重要。

终洛华
2023-03-14

是的,但您需要设置正确的超时和重试选项:请参阅概念文档

Java客户文档和Golang文档

 类似资料:
  • 有人能帮我了解以下情况吗?我有1个工人配置如下: 如果我将“最大当前工作流任务可执行文件大小”和“最大当前活动可执行文件大小”设置为 1024,则工作线程开始工作太慢。我认为增加这两个选项将有助于处理更多的活动和工作流任务,但它的工作方式不同。工作线程具有足够的 CPU/RAM,并且他根本没有过载。 从临时UI中,我能够捕捉到一些工作流在这样的历史状态下冻结了一段时间: 我还调整了这样的匹配参数:

  • 如果我有一个长期的活动,比如 我希望能够从工作流程中取消它(而不会取消整个工作流程),然后我将如何做到这一点? 我曾希望您可以在上下文Done通道上接收,然后在工作流中创建一个可取消的上下文,但这显然无济于事。

  • 这可以被认为是在节奏工作流的循环中调用相同活动的后续问题:在活动迭代的情况下,工作流如何恢复?是继续调用第i个活动(跳过已经调用的活动)还是从0重新开始?如果是这样,如何编写工作流以跳过调用的活动(0-'k')?

  • 在当前的应用中,我们有三个服务: 发票 银行转账:调用外部API,这可能需要一分钟左右的时间,具体取决于队列 分类帐:创建借贷分类帐的内部微服务 为了沟通,我们有一个编配传奇。流程基本上使用发票作为协调器: 发票服务向Rabbitmq发布消息,要求支付发票X 银行转账服务监听消息,获取发票X 银行转账服务处理转账(调用银行的API)。付款成功时,向Rabbitmq发布“InVoice X已付款”的

  • 可以运行不需要连接到cadence服务器的本地活动。是否有适当的方式在本地运行工作流,以防发生cadence中断?我正在使用Go客户端。

  • 我想显示我的活动广告。为此,我在manifest上添加了下一行: 关于活动xml有: 有什么建议吗?