0

ケイデンス ワークフローにケイデンス バージョニングを導入しましたが、その後、バージョニング導入の時点でワークフローの実行が停止しました。次のエラーが表示されます。

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 は有効な検索属性ではありません}

この問題について教えてください。

4

1 に答える 1