ケイデンス ワークフローにケイデンス バージョニングを導入しましたが、その後、バージョニング導入の時点でワークフローの実行が停止しました。次のエラーが表示されます。
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 は有効な検索属性ではありません}
この問題について教えてください。