问题标签 [uber-cadence]
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.
uber-cadence - 向远程 Cadence 服务器注册工作流:任何示例
如何将工作流注册到远程 Cadence 服务器?几乎所有示例都指向本地服务器。
谢谢桑杰
cadence-workflow - Uber Cadence 任务列表管理
我们正在使用 Uber Cadence,并且我们会定期在生产环境中遇到问题。设置如下:
- 一个带有 Cadence 客户端 2.7.5 的 Java 14 BE
- 带有 Postgres DB 的 Cadence 服务版本 0.14.1
有多个域,对于所有域,单个 BE 服务器注册为工作器。
日志中可见的是,有时在查询期间,节奏似乎失去了对 BE 服务的粘性:
同时在后端什么都看不到。但是,在此期间,如果我检查 cadence Web 客户端上的轮询器,我会看到任务列表在那里,但它不再被视为决策处理程序(http://localhost:8088/domains/mydomain/task-列表/mytasklist/pollers)。正因为如此,几乎整个环境都死了,因为没有什么可以随着决定而进步。唯一的选择是重新启动后端服务并让它重新注册为工作人员。
在这一点上,调查被卡住了,所以一些帮助将不胜感激。
- 有谁知道工人或任务列表如何失去其作为决策处理者的能力?它是按节奏管理的,比如基于工人产生的错误数量吗?我无法找到任何关于此的信息。
- 据我了解,当粘性丢失时,cadence 将检查是否有另一个工作人员重播工作流程并继续它(在我的情况下,这将是同一个工作人员,因为只有一个工作人员)。是否有可能无法重播流程(尽管我认为它会在 cadence 客户端的后端日志中生成一些内容)或者此时工作人员已经从列表中删除并导致超时?
任何帮助都将受到欢迎!谢谢!
java - Cadence CLI 最新镜像不支持最新版本镜像?
我正在调查/学习节奏,并决定在带有 WLS2 的 Windows 上通过 docker 运行最新版本。使用docker.tar.gz fromhttps://github.com/uber/cadence/releases/tag/v0.20.0
和 docker-compose up 运行 cadence 然后遵循“hello world”工作流示例。
不幸的是,在尝试注册域时出现错误:
在我看来,CLI master 分支不支持最新版本的图像,这有点令人失望!
java - 如何从 Uber Cadence 中的 Java 代码获取打开/关闭的工作流列表?
我正在开发一个使用 Uber Cadence Java Client 的项目。如何从代码中获取打开/关闭的工作流列表?我可以从 CLI 中获取它,但不能从 java 代码中获取。
谢谢你。
cadence-workflow - 如何在不等待的情况下获得 Activity 的结果?以事件驱动的方式
团队,我对并行调用活动有疑问。
我知道可以使用Async.function
.
对于我的用例,我想在收到所有活动的结果后并行调用 n 个活动,我想进入下一个状态,它可以是另一个活动或决策任务。
但是这里它给了我一个类似于 Java 中的 Future 的 Promise 对象。如果我们编写 promise.get() 来获得结果,但它阻塞了线程。
我需要类似于事件驱动的时尚而不阻塞线程。
希望你能理解我的问题!!
cadence-workflow - Difference between Async.function and Async.procedure in cadence
Team,
I don't know the difference between Async.function and Async.procedure
Let me know when to use where
cadence-workflow - 历史回放如何以节奏进行?
历史回放如何以节奏进行?
我有一个按顺序调用两个活动的工作流。
比如说,第一个活动已经完成,第二个活动有 100 行代码。如果应用服务器在执行activity2中的第50行代码时重新启动,它是否正好从第50行开始执行。如果是,那么在节奏中发生了什么神奇的事情?
我的 hello 活动中有上述代码。此代码将运行 4 分钟,当条件满足时,它将在文件中写入数据
我开始了一个工作流程,并在打印后退出了 cadence 服务器[Activity] started
。我没有启动它只是停止它。但 4 分钟后,它完全[Activity] Ended
在控制台中打印。我想知道这怎么可能,因为我停止了服务器但代码正在执行,数据正在写入文件中。
当我通过 cadence UI 检查它时,它显示最后的历史是
ActivityTaskStarted
. 我启动了我的服务器。15 分钟后(因为 scheduleToCloseTimeoutSeconds 是 15 分钟)活动返回事件ActivityTaskTimedOut
,并且整个 whorkflow 由于此超时而失败。
请解释重新启动 cadence 服务器时发生了什么?
cadence-workflow - 如何按节奏动态创建工作流
每个工作流都应该在单独的工作流类中实现吗?
是否建议实现一个通用工作流类,我们将使用传递给工作流的参数调用活动和触发计时器?
在我们的用例中,我们将从 UI 创建工作流,它将由最终用户创建。因此,我们最初无法定义我们的工作流程。
是推荐的方法吗?
cadence-workflow - ContinueAsNew 的确切用例是什么
团队,
使用 continueAsNew 的确切用例是什么?
由于我们支持 CronSchedule 进行定期活动,我不知道使用它的场景。
我们是否有这个来提供向后兼容性
cadence-workflow - 了解有节奏的信号和查询
查询 - 查询是将这种内部状态暴露给外部世界。查询公开为由外部实体调用的异步回调。
异步回调是什么意思?
Doc 说,Query 有两个限制 1)。不应改变工作流 2) 的状态。不会有任何阻塞操作。
但是我确实在查询方法中改变了变量并且它正在改变值。
我们不应该在查询方法中编写可变或阻塞代码,这仅仅是一种信念吗?
我没有看到查询和信号之间有任何区别。即使在工作流程完成后也会调用查询方法,而 Signal 不会?
我的理解正确吗?