Cadence 分别注册工作流和活动
Cadence register workflows and activities separately
我有一个多台机器的网络,我用的是cadence go client
机器 1 需要注册活动。
// Machine 1 registering activities
func sampleActivity(ctx context.Context) (string, error) {
logger := activity.GetLogger(ctx)
logger.Info("separate machines are handling this")
return "Activity machine succeeded"
}
func main() {
activity.RegisterWithOptions(sampleActivity, RegisterOptions{Name: "Machine1Activity"})
}
机器 2 需要注册工作流。
// Machine 2 registering workflows
func sample_workflow(ctx workflow.Context, name string) (string, error) {
...
err := workflow.ExecuteActivity(ctx, "Machine1Activity")
...
}
func main() {
workflow.RegisterWithOptions(sampleWorkflow, "Machine2Workflow")
}
机器 3 需要启动才能启动工作流。
// Machine 3 starting the workflow
// Prepare options and ctx
client.StartWorkflow(ctx, options, "Machine2Workflow", "Machine1Activity")
cadence-fronted 服务在另一台机器上。
我如何使用 go 客户端执行此操作?另外寄存器只保存内存中的 workflow/activity 吗?怎么推送到cadence服务,让其他机器也能找到。
目前,注册纯粹是特定工作进程的本地注册。我们计划在将来添加某种具有 activity 目录和工作流类型的元数据服务。
要在机器 1 上禁用工作流工作者,请指定 WorkerOptions.DisableWorkflowWorker
。
要在机器 2 上禁用 activity worker,请指定 WorkerOptions.DisableActivityWorker
。
无需在机器3上注册任何东西
我有一个多台机器的网络,我用的是cadence go client
机器 1 需要注册活动。
// Machine 1 registering activities
func sampleActivity(ctx context.Context) (string, error) {
logger := activity.GetLogger(ctx)
logger.Info("separate machines are handling this")
return "Activity machine succeeded"
}
func main() {
activity.RegisterWithOptions(sampleActivity, RegisterOptions{Name: "Machine1Activity"})
}
机器 2 需要注册工作流。
// Machine 2 registering workflows
func sample_workflow(ctx workflow.Context, name string) (string, error) {
...
err := workflow.ExecuteActivity(ctx, "Machine1Activity")
...
}
func main() {
workflow.RegisterWithOptions(sampleWorkflow, "Machine2Workflow")
}
机器 3 需要启动才能启动工作流。
// Machine 3 starting the workflow
// Prepare options and ctx
client.StartWorkflow(ctx, options, "Machine2Workflow", "Machine1Activity")
cadence-fronted 服务在另一台机器上。
我如何使用 go 客户端执行此操作?另外寄存器只保存内存中的 workflow/activity 吗?怎么推送到cadence服务,让其他机器也能找到。
目前,注册纯粹是特定工作进程的本地注册。我们计划在将来添加某种具有 activity 目录和工作流类型的元数据服务。
要在机器 1 上禁用工作流工作者,请指定 WorkerOptions.DisableWorkflowWorker
。
要在机器 2 上禁用 activity worker,请指定 WorkerOptions.DisableActivityWorker
。
无需在机器3上注册任何东西