问题标签 [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.
cadence-workflow - Cadence Workflow:将主机特定对象(如数据库连接、服务客户端等)传递给活动实现
当 cadence worker 出现时,它会初始化某些资源,例如数据库连接和其他服务的客户端。使这些资源可以从活动实现中访问的正确模式是什么?
java - 如何使 ActivityOptions 在工作流程中像它的生命周期一样动态
由于我的活动工作量可能有很大不同,我们不能使用固定的 scheduleToCloseTimeoutSeconds
在workerImpl 的构造函数中,我为将在工作流方法中使用的活动新建存根。但问题是注册工作流的建议方法是按类型:
registerWorkflowImplementationTypes
它只接受一个类。因此无法将诸如生命周期之类的选项传递给可用于使 acitivityOptions 动态化的工作流。
那么我想要实现对 Cadense 的反模式是什么?如果不是,那么正确的做法是什么?可能应该使用工作流工厂方法,但文档表明这些方法主要用于单元测试和模拟,并且看起来使用registerWorkflowImplementationTypes
是首选方法。
cadence-workflow - 在任何低优先级工作流之前执行所有高优先级节奏工作流
在https://cadenceworkflow.io/docs/03_concepts/02_activities#activity-task-routing-through-task-lists的文档中,它提到One task list per priority and having a worker pool per priority.
在该实现下支持多个优先级,可能仍然存在低优先级的工作流在高优先级工作流之前执行。
是否有可能实现一个优先系统,使得在去往高优先级工作人员的工作流进行之前,没有一个工作流去到低优先级工作池被执行?
architecture - 我没有工作流、工作流自动化或工作流编排
为什么我们需要像 Uber 的 Cadence 或 Camunda 或 Activiti 这样的特殊软件?如果它只是一系列任务,那么为什么我们不能直接编写代码呢?我试图阅读 Camunda 和 Cadence 的文档,但无法进入。我公司想用。考虑过它的高级开发人员似乎无法/不会解释他为什么要使用它或在哪里使用它。
而且我发现他们设置工作流程的代码/方式非常不直观。有人请帮忙。
该项目是使用 Java 和 Spring Boot 开发的。
kubernetes - Kubernetes 上没有出现 Cadence 集群
我正在尝试在 kubernetes 集群上运行 cadence。但是,我注意到 Cadence 服务器初始化中存在一个错误,该错误会阻止 Cassandra 脚本运行以正确初始化架构。https://github.com/uber/cadence/issues/1713 所以我想我会手动完成这一步。我执行了以下步骤 -
- kompose convert 在 docker compose 上来自https://raw.githubusercontent.com/uber/cadence/master/docker/docker-compose.yml
- kubectl apply -f cassandra-deployment.yaml
- 在本地运行容器 将 cadence-cassandra-tool(usr/local/bin/cadence-cassandra-tool) 和 cassandra(/etc/cadence/schema/cassandra) 文件夹从本地容器复制到本地目录
- 将这两个文件复制到 cassandra pod
- 登录到 cassandra pod
- 在容器上运行以下命令
在这一点上,我describe keyspaces;
通过检查。cqlsh 我没有看到在 cassandra 中创建的这些键空间!
- 运行 cassandra service、stastd、cadence-service、cadence-web 并将其公开给集群。我注意到的是 cadence 服务已经启动,我可以进入 UI。我们使用负载均衡器公开了 cadence-service 和 cadence-web,因此我可以从本地访问 IP。
我注意到 cadence-service pod 没有运行。我收到以下错误 -
有关如何启动它的任何指示?谢谢。
cadence-workflow - 如何在 Cadence 中处理活动工作者故障
我正在探索 Cadence,并有一个关于故障恢复的问题。我了解工作流是容错的(保持工作流历史记录),以防工作流工作者失败。我无法为活动工作者找到相同的保证。示例:假设一个活动对服务 A 进行 RPC 调用,这会改变一些远程对象的状态;现在,让我们假设调用成功,但是在通知 Cadence 服务之前,activity worker 丢失了。在这种情况下,Cadence 会再次将活动安排在新员工身上吗?
我知道如果服务 A 是幂等的,上述可能不是问题。如果服务 A 不是幂等的,那么在 Cadence 中处理上述场景的建议是什么。
go - 在节奏中断的情况下节奏工作流
可以运行不需要连接到cadence服务器的本地活动。在节奏中断的情况下,是否也有适当的方法在本地运行工作流?我正在使用 Go 客户端。
cadence-workflow - 如何将 Cadence 与多个微服务一起使用
我试图了解 Cadence 引擎的工作原理,但我无法理解如何使其分发。我已经有使用 Conductor 的经验,在这种情况下,我只需为每个微服务实现 Worker 类,然后指向 Conductor 服务器的 uri 即可开始轮询。我怎样才能用 Cadence 做同样的事情?
cadence-workflow - 如何在节奏工作流活动中存储当前光标位置
在节奏工作流活动中,在迭代多个实体时存储当前光标位置的最佳实践是什么?这将允许工作流在发生故障时从最后一个光标处开始。
存储当前光标的正确方法是什么?我们是否应该定期使用当前光标继续新的?
cadence-workflow - getVersion API 中 minSupported 和 maxSupported 参数的用途
我发现getVersion API有点难以掌握。在对工作流程更改进行了一些手动实验后,我发现拥有这样一段代码非常好:
这是否意味着整数版本被分配给一个
changeId
而不是工作流实例?单个工作流实例/执行是否保留一组基于整数的版本?目的
minSupported
和maxSupported
参数是什么?为什么干脆不使用像下面这样的 API?