问题标签 [cadence-workflow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
471 浏览

cadence-workflow - 按客户跟踪正在进行的节奏工作流程

假设我们需要在用户完成购物车后生成订单

这是我们生成订单的步骤:

  • 生成挂起状态的订单(订单微服务)
  • 授权用户信用(记账微服务)
  • 将购物车的状态设置为关闭(购物车微服务)
  • 批准订单(订单微服务)

为此,我们只需创建一个节奏工作流,为每个步骤调用一个活动。

问题1:如果用户再次打开购物车或刷新页面,客户端如何检测到该购物车的订单创建正在进行中?(注意:假设我们的工作流还没有被worker执行)

我对问题 1 的解决方案:创建订单并将其状态更改为pending在运行工作流之前,因此对于下一个请求,客户知道订单处于待处理状态。但是如果订单创建成功,但启动工作流失败,会发生什么?它不是事务性的(订单创建和工作流程运行)

如果此解决方案也是您的解决方案并且您接受其风险,请告诉我。我是节奏的新手。

问题2:工作流程完成并准备好订单后如何通知客户?

请提供任何解决方案或文章或帮助?

0 投票
1 回答
582 浏览

cadence-workflow - 如何重新启动超时/失败/取消/终止的节奏工作流程

嗨,我有一个包含 2 个活动的工作流程。设想。一项活动在执行第二项时完成,我需要通信的 URL 链接已关闭。现在,当该 URL 启动时,工作流就会超时。那么如何重新启动超时工作流程?

这个问题的灵感来自Github issue

0 投票
1 回答
284 浏览

cadence-workflow - 为什么活动任务已计划但未启动?

通过查看历史,我安排了一个活动任务,但从未执行(开始),然后工作流超时。我可以确认 cadence worker 正在运行,因为其他工作流程同时工作正常。

为什么活动没有在历史记录中启动/执行?我应该如何调查这样的问题?

我的活动超时与工作流超时相同。

问题来自this Github issue

0 投票
1 回答
526 浏览

aws-step-functions - Solutions to fix stuck timers / activities in Cadence/SWF/StepFunctions

So timers are durable in workflow engines like Cadence, SWF and Step functions. Durable timer is useful for use cases that need to wait for a long period of time, then wake up to execute some business logic. Because of the durability, it’s resilient to various failures, making the programming experience and model much better for developers.

But what if you want to change a timer after it has started? Like this example:

After the timer started, you may want the timer to wait for 3 days instead, or even cancel it. What if you simply change the workflow code to this?

This does NOT work!

In SWF, Step Functions and Cadence, this will only work for new workflow executions that haven’t started the timer yet. But here you really want to fix is the workflows with “stuck” timers waiting for 7 days.

In SWF and Cadence, this is making things even worse -- the “stuck” workflows now become really stuck for “non deterministic errors”(aka NDE) until workflow timeouts. Because behind the scene, Cadence/SWF turns the durable time into a timer event in the workflow history, with the timer value. During replay, the workflow expects to see the timer existing with exactly the same timer value. Seeing a different timer value causes an NDE in workflows.

Also for activities, it can get stuck when we use a very large timeout, but it got stuck because there is a process/thread/RPC call get stuck, or during deployment the host got killed.

So what is the solution?

0 投票
1 回答
177 浏览

cadence-workflow - 如何根据某些过滤获取工作流列表,例如 timeout/workflowType

来自https://github.com/uber/cadence/issues/3820

人们希望获得基于某些过滤的工作流列表是命令。例如,获取要重置或任何操作的工作流列表。

0 投票
1 回答
1170 浏览

cadence-workflow - 如何为 Cadence 活动(本地和常规活动,有或没有重试)设置适当的超时值?

所以有这么多超时值:

对于本地活动

  • ScheduleToClose 超时

对于没有重试的常规活动

  • ScheduleToStart 超时
  • ScheduleToClose 超时
  • StartToClose 超时
  • 心跳超时

然后retryOptions中的更多值:

  • 过期间隔
  • 初始间隔
  • 退避系数
  • 最大间隔
  • 最大尝试次数

并且 retryOptions 可以应用于 localActivity 或常规活动。

我如何将它们与什么期望一起使用?

0 投票
1 回答
78 浏览

cadence-workflow - cadence go-client/client 到达服务器以获取工作流导致恐慌

首次使用Cadence:

场景 我的沙盒环境中有一个 cadence 服务器运行。意图是获取工作流状态

我正在尝试使用这个 cadence 客户端

go.uber.org/cadence/client

在我的本地主机上与我的沙盒节奏服务器交谈。

这是我的简单代码片段:

我肯定弄错了,因为客户端不知道如何访问 cadence 服务器。我参考了这个https://cadenceworkflow.io/docs/go-client/以找到正确的用法,但找不到任何参考(可能我可能错过了它)。

有关如何解决/实施此问题的任何帮助,都会有很大帮助

0 投票
1 回答
340 浏览

cadence-workflow - 我可以或如何删除 Cadence 工作流域吗?

我偶然创建了一个错误的域,或者经过一些测试后我想删除该域。我应该这样做吗?如何?

0 投票
1 回答
201 浏览

cadence-workflow - 重置失败(代码:deadline-exceeded message:timeout)

我们可以使用 Cadence cli 很好地从系统中读取数据(例如列出工作流、列出给定工作流的历史记录等)。

但是,当尝试重置工作流时,我们会收到超时错误。我们尝试过手动增加超时(通过--context_timeout标志),但这似乎没有帮助。

我们已经检查了工作流的历史记录,并且似乎没有对相关工作流发生任何事情(即没有开始新的运行或类似的事情)。

我们也尝试过使用--event_id而不是--reset_type,我们尝试过对不同的工作流 ID 进行操作,但我们仍然遇到相同的超时错误。

我们是否错误地使用了 cli?

0 投票
1 回答
681 浏览

cadence-workflow - 如何在 Cadence 中增加 Persistence QPS 限制

Cadence中QPS限制有两种类型的错误

最好的解决方法是什么?