我们有一个使用基于cron的调度的工作流程。我们需要支持一个用例来更改cron表达式。
这样做的最佳做法是什么?
使用相同的工作流ID再次启动相同的cron工作流,IDReusePolicy=TerminteIfRunning
就像在留档中一样,CRON只有在取消或终止时才会停止。所以你也可以终止/取消,然后开始一个新的。但是如果你用两个请求自己做,就没有一致性保证了。
使用 IDReusePolicy =
TerminteIfRunning
将确保终止启动是 Cadence 中的原子操作。
这里是使用它的例子
1.开始一个你好世界的工作人员
./bin/helloworld -m worker &
[1] 24808
2021-03-22T20:08:09.404-0700 INFO common/sample_helper.go:97 Logger created.
2021-03-22T20:08:09.405-0700 DEBUG common/factory.go:131 Creating RPC dispatcher outbound {"ServiceName": "cadence-frontend", "HostPort": "127.0.0.1:7933"}
...
...
$./cadence --do samples-domain wf start --tl helloWorldGroup -w "test-cron" --execution_timeout 10 --cron "* * * * *" --wt "main.helloWorldWorkflow" -i '"Hello"'
Started Workflow Id: test-cron, run Id: 2d9f06f9-7e79-4c9d-942a-e2c6a20c9f85
$./cadence --do samples-domain wf start --tl helloWorldGroup -w "test-cron" --execution_timeout 10 --cron "* * * * *" --wt "main.helloWorldWorkflow" -i '"Cadence"' --workflowidreusepolicy 3
Started Workflow Id: test-cron, run Id: 4344448d-5a95-4a91-a56e-ebc0b93b4d29
请注意,在CLI中:< code >-workflowidreusepolicy 3
将设置IDReusePolicy = < code > TerminteIfRunning
CLI用法将在此PR之后更新。
$2021-03-22T20:24:00.307-0700 INFO helloworld/helloworld_workflow.go:29 helloworld workflow started {"Domain": "samples-domain", "TaskList": "helloWorldGroup", "WorkerID": "24808@IT-USA-25920@helloWorldGroup", "WorkflowType": "main.helloWorldWorkflow", "WorkflowID": "test-cron", "RunID": "1e2e6d2f-dcc7-410f-8d06-81c94622bbb7"}
2021-03-22T20:24:00.307-0700 DEBUG internal/internal_event_handlers.go:470 ExecuteActivity {"Domain": "samples-domain", "TaskList": "helloWorldGroup", "WorkerID": "24808@IT-USA-25920@helloWorldGroup", "WorkflowType": "main.helloWorldWorkflow", "WorkflowID": "test-cron", "RunID": "1e2e6d2f-dcc7-410f-8d06-81c94622bbb7", "ActivityID": "0", "ActivityType": "main.helloWorldActivity"}
...
问题内容: 我刚开始学习Go,并通读现有代码以学习“其他人的做法”。在这种情况下,遍历使用go“工作区”,尤其是与项目依赖关系有关的地方。 在处理各种Go项目时,使用一个或多个Go工作区(即$ GOPATH的定义)的常见(或存在)最佳实践是什么?我应该期望有一个类似于我所有项目的中央代码存储库的Go工作区,还是在我处理这些项目时都明确将其分解并设置$ GOPATH(有点像python) virtu
问题内容: 背景 我的小组有4个SQL Server数据库: Production UAT Testing Developer 我在开发环境中工作。当需要提升我一直在处理的对象(表,视图,函数,存储的过程)的时候,我向经理提出了要求,经理将其提升为Test。经过测试后,她向提升为UAT的管理员提交了请求。在成功进行用户测试之后,同一管理员将晋升为正式生产。 问题 出于某些原因,整个过程很尴尬。 每
cadence默认使用的时区是什么? 我们如何根据时区更改cron表达式?例如,如果用户从不同的时区输入cron时间表,而不是卡顿的服务器时区,假设用户在格林尼治标准时间5每天下午1点输入,那么它应该在服务器上午9点运行(假设卡顿的服务器时区仅为格林尼治标准时间)。 我正在使用golang cadence客户端编写工作流。感谢任何帮助。
我希望在我工作的公司里从SVN转到Git。我面临的问题是如何让我的头脑围绕一个体面的工作流程。 通常,对于处于启动后状态的PHP项目,客户端会为一些带有ID(smeg23452)的工作创建票证。在SVN中,我们通常会将票证ID放在开发分支的每次提交中,然后挑选这些更改并将它们放入主干。没关系,但是有时合并失败,或者开发人员未能将票证号与工作相对应。 在理想情况下,我希望能够在Git中为票证建立一个
在我的工作流和活动中,我想记录一些消息以进行调试。 我看到了< code >的节奏。GetLogger(ctx)。Info()函数,但是不知道在哪里可以找到日志。
我有一个表单,其中定义了许多字段,如firstName、lastName等。此外,该表单可以处于业务流程的不同状态,如new、active或rejected。如果表单处于活动状态,则某些字段更改需要其他用户接受,例如,如果我更改firstName值,则表单应从活动状态处理为waiting\u for\u接受状态。我已经使用流程库和我自己的java代码实现了它,但我想知道,使用Activiti/jB