我在 cadence 工作流中引入了 cadence 版本控制,之后工作流在版本控制引入点停止执行。我收到以下错误:
2020-10-29T07:23:49.587Z DEBUG internal/internal_event_handlers.go:465 ExecuteActivity {“Domain”:“domain_1”,“TaskList”:“tasklist_1”,“WorkerID”:“6@cdnc-5ddb9ccbb5-5dt5j@tasklist ”,“WorkflowType”:“do_work_workflow”,“WorkflowID”:“CREATE”,“RunID”:“cab97b65-9892-48c5-b842-3f8b462d8602”,“ActivityID”:“4”,“ActivityType”:“do_Task_D”} 2020-10-29T07:23:49.620Z DEBUG internal/internal_task_handlers.go:1077 缓存状态已过时,新任务有意外事件 {“Domain”:“domain_1”,“TaskList”:“tasklist_1”,“WorkerID”:“6 @cdnc-5ddb9ccbb5-5dt5j@tasklist1", "WorkflowID": "CREATE", "RunID": "cab97b65-9892-48c5-b842-3f8b462d8602”,“CachedPreviousStartedEventID”:30,“TaskFirstEventID”:22,“TaskStartedEventID”:30,“TaskPreviousStartedEventID”:21}
我的工作流程代码将如下所示:
func doWorkflow(ctx workflow.Context, input string) error {
err := doTaskA(input)
if err != nil {
return err
}
err = doTaskB(input)
if err != nil {
return err
}
versionTaskC := workflow.GetVersion(ctx, "ChangeID", workflow.DefaultVersion, 1)
if versionTaskC == workflow.DefaultVersion {
err = doTaskC(input)
if err != nil {
return err
}
} else {
err = doTaskD(input)
if err != nil {
return err
}
}
err = doTaskD2(input)
if err != nil {
return err
}
err = doTaskD3(input)
if err != nil {
return err
}
return nil
}
在 ChangeID 处,返回的版本为 1,工作流尝试执行 TaskD,但它没有执行它,它陷入了无限循环,试图执行 TaskD。
我得到的错误信息是
缓存状态过时,新任务有意外事件
和
BadRequestError{消息:CadenceChangeVersion 不是有效的搜索属性}
你能帮我解决这个问题吗?