如果一个woker在registerWorkflowImplementationTypes 没有将同样tasklist name,即同一tasklist下所有Workflow 进行register,可能出现如下错误:
2021/09/30-02:55:15[Workflow Executor taskList="HelloCancellation", domain="samples-domain": 1]ERROR Caller+0 at com.uber.cadence.internal.replay.ReplayDecisionTaskHandler.handleDecisionTask(ReplayDecisionTaskHandler.java:99) - Workflow task failure. startedEventId=3, WorkflowID=HelloCancellation_id, RunID=4cab49ef-ecaa-42a5-9775-16143bdb0e11. If see continuously the workflow might be stuck. java.lang.Error: Unknown workflow type "GreetingWorkflow::getGreeting". Known types are [AnotherWorkflow::getAnother] at com.uber.cadence.internal.sync.POJOWorkflowImplementationFactory.getWorkflowDefinition(POJOWorkflowImplementationFactory.java:195) at com.uber.cadence.internal.sync.POJOWorkflowImplementationFactory.getWorkflow(POJOWorkflowImplementationFactory.java:210) at com.uber.cadence.internal.replay.ReplayDecisionTaskHandler.createDecider(ReplayDecisionTaskHandler.java:281) at com.uber.cadence.internal.replay.ReplayDecisionTaskHandler.lambda$processDecision$0(ReplayDecisionTaskHandler.java:141) at com.uber.cadence.internal.replay.DeciderCache.getOrCreate(DeciderCache.java:65) at com.uber.cadence.internal.replay.ReplayDecisionTaskHandler.processDecision(ReplayDecisionTaskHandler.java:137) at com.uber.cadence.internal.replay.ReplayDecisionTaskHandler.handleDecisionTaskImpl(ReplayDecisionTaskHandler.java:125) at com.uber.cadence.internal.replay.ReplayDecisionTaskHandler.handleDecisionTask(ReplayDecisionTaskHandler.java:86) at com.uber.cadence.internal.worker.WorkflowWorker$TaskHandlerImpl.handle(WorkflowWorker.java:221) at com.uber.cadence.internal.worker.WorkflowWorker$TaskHandlerImpl.handle(WorkflowWorker.java:1) at com.uber.cadence.internal.worker.PollTaskExecutor.lambda$process$0(PollTaskExecutor.java:71) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) 2021/09/30-02:55:15[Workflow Poller taskList="HelloCancellation", domain="samples-domain": 1]INFO Caller+0 at com.uber.cadence.internal.worker.WorkflowPollTask.poll(WorkflowPollTask.java:98) - poll request returned decision task: workflowType=WorkflowType(name:GreetingWorkflow::getGreeting), workflowExecution=WorkflowExecution(workflowId:HelloCancellation_id, runId:4cab49ef-ecaa-42a5-9775-16143bdb0e11), startedEventId=6, previousStartedEventId=0 2021/09/30-02:55:15[Workflow Poller taskList="HelloCancellation", domain="samples-domain": 1]INFO Caller+0 at com.uber.cadence.internal.worker.WorkflowPollTask.poll(WorkflowPollTask.java:79) - poll request begin: PollForDecisionTaskRequest(domain:samples-domain, taskList:TaskList(name:HelloCancellation), identity:11180@DESKTOP-OEJIV9E) 2021/09/30-02:55:15[Workflow Executor taskList="HelloCancellation", domain="samples-domain": 1]INFO Caller+0 at com.uber.cadence.internal.worker.WorkflowWorker$TaskHandlerImpl.handle(WorkflowWorker.java:202) - PollForDecisionTaskResponse=PollForDecisionTaskResponse(taskToken:7B 22 64 6F 6D 61 69 6E 49 64 22 3A 22 33 33 62 36 39 37 37 34 2D 35 39 38 33 2D 34 64 63 61 2D 39 66 34 64 2D 39 37 37 63 38 30 37 34 62 38 65 34 22 2C 22 77 6F 72 6B 66 6C 6F 77 49 64 22 3A 22 48 65 6C 6C 6F 43 61 6E 63 65 6C 6C 61 74 69 6F 6E 5F 69 64 22 2C 22 77 6F 72 6B 66 6C 6F 77 54 79 70 65 22 3A 22 22 2C 22 72 75 6E 49 64 22 3A 22 34 63 61 62 34 39 65 66 2D 65 63 61 61 2D..., workflowExecution:WorkflowExecution(workflowId:HelloCancellation_id, runId:4cab49ef-ecaa-42a5-9775-16143bdb0e11), workflowType:WorkflowType(name:GreetingWorkflow::getGreeting), startedEventId:6, attempt:1, backlogCountHint:0, history:History(events:[HistoryEvent(eventId:1, timestamp:1632941716403692275, eventType:WorkflowExecutionStarted, version:0, taskId:1049020, workflowExecutionStartedEventAttributes:WorkflowExecutionStartedEventAttributes(workflowType:WorkflowType(name:GreetingWorkflow::getGreeting), taskList:TaskList(name:HelloCancellation), input:22 63 61 64 65 6E 63 65 53 65 72 76 69 63 65 48 6F 73 74 22, executionStartToCloseTimeoutSeconds:30, taskStartToCloseTimeoutSeconds:10, continuedExecutionRunId:, originalExecutionRunId:4cab49ef-ecaa-42a5-9775-16143bdb0e11, identity:, firstExecutionRunId:4cab49ef-ecaa-42a5-9775-16143bdb0e11, attempt:0, cronSchedule:, firstDecisionTaskBackoffSeconds:0)), HistoryEvent(eventId:2, timestamp:1632941716403702846, eventType:DecisionTaskScheduled, version:0, taskId:1049021, decisionTaskScheduledEventAttributes:DecisionTaskScheduledEventAttributes(taskList:TaskList(name:HelloCancellation), startToCloseTimeoutSeconds:10, attempt:0)), HistoryEvent(eventId:3, timestamp:1632941716421058604, eventType:DecisionTaskStarted, version:0, taskId:1049029, decisionTaskStartedEventAttributes:DecisionTaskStartedEventAttributes(scheduledEventId:2, identity:11180@DESKTOP-OEJIV9E, requestId:ebdc5226-fc48-4636-8d2e-89373239ee2a)), HistoryEvent(eventId:4, timestamp:1632941716564721313, eventType:DecisionTaskFailed, version:0, taskId:1049032, decisionTaskFailedEventAttributes:DecisionTaskFailedEventAttributes(scheduledEventId:2, startedEventId:3, cause:UNHANDLED_DECISION, details:6A 61 76 61 2E 6C 61 6E 67 2E 45 72 72 6F 72 3A 20 55 6E 6B 6E 6F 77 6E 20 77 6F 72 6B 66 6C 6F 77 20 74 79 70 65 20 22 47 72 65 65 74 69 6E 67 57 6F 72 6B 66 6C 6F 77 3A 3A 67 65 74 47 72 65 65 74 69 6E 67 22 2E 20 4B 6E 6F 77 6E 20 74 79 70 65 73 20 61 72 65 20 5B 41 6E 6F 74 68 65 72 57 6F 72 6B 66 6C 6F 77 3A 3A 67 65 74 41 6E 6F 74 68 65 72 5D 0D 0A 09 61 74 20 63 6F 6D 2E 75..., identity:11180@DESKTOP-OEJIV9E, reason:, baseRunId:, newRunId:, forkEventVersion:0, binaryChecksum:)), HistoryEvent(eventId:5, timestamp:1632941716564740499, eventType:DecisionTaskScheduled, version:0, taskId:0, decisionTaskScheduledEventAttributes:DecisionTaskScheduledEventAttributes(taskList:TaskList(name:HelloCancellation), startToCloseTimeoutSeconds:10, attempt:1)), HistoryEvent(eventId:6, timestamp:1632941716574866546, eventType:DecisionTaskStarted, version:0, taskId:0, decisionTaskStartedEventAttributes:DecisionTaskStartedEventAttributes(scheduledEventId:5, identity:11180@DESKTOP-OEJIV9E, requestId:dbf4a3a4-d535-4cfd-9163-c25f8729aae6))]), WorkflowExecutionTaskList:TaskList(name:HelloCancellation, kind:NORMAL), scheduledTimestamp:1632941716564740499, startedTimestamp:1632941716574866546, nextEventId:5) 2021/09/30-02:55:15[Workflow Executor taskList="HelloCancellation", domain="samples-domain": 1]ERROR Caller+0 at com.uber.cadence.internal.worker.PollerOptions$Builder.lambda$build$0(PollerOptions.java:138) - uncaught exception java.lang.RuntimeException: Failure processing decision task. WorkflowID=HelloCancellation_id, RunID=4cab49ef-ecaa-42a5-9775-16143bdb0e11 at com.uber.cadence.internal.worker.WorkflowWorker$TaskHandlerImpl.wrapFailure(WorkflowWorker.java:243) at com.uber.cadence.internal.worker.WorkflowWorker$TaskHandlerImpl.wrapFailure(WorkflowWorker.java:1) at com.uber.cadence.internal.worker.PollTaskExecutor.lambda$process$0(PollTaskExecutor.java:76) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.Error: Unknown workflow type "GreetingWorkflow::getGreeting". Known types are [AnotherWorkflow::getAnother] at com.uber.cadence.internal.sync.POJOWorkflowImplementationFactory.getWorkflowDefinition(POJOWorkflowImplementationFactory.java:195) at com.uber.cadence.internal.sync.POJOWorkflowImplementationFactory.getWorkflow(POJOWorkflowImplementationFactory.java:210) at com.uber.cadence.internal.replay.ReplayDecisionTaskHandler.createDecider(ReplayDecisionTaskHandler.java:281) at com.uber.cadence.internal.replay.ReplayDecisionTaskHandler.lambda$processDecision$0(ReplayDecisionTaskHandler.java:141) at com.uber.cadence.internal.replay.DeciderCache.getOrCreate(DeciderCache.java:65) at com.uber.cadence.internal.replay.ReplayDecisionTaskHandler.processDecision(ReplayDecisionTaskHandler.java:137) at com.uber.cadence.internal.replay.ReplayDecisionTaskHandler.handleDecisionTaskImpl(ReplayDecisionTaskHandler.java:125) at com.uber.cadence.internal.replay.ReplayDecisionTaskHandler.handleDecisionTask(ReplayDecisionTaskHandler.java:86) at com.uber.cadence.internal.worker.WorkflowWorker$TaskHandlerImpl.handle(WorkflowWorker.java:221) at com.uber.cadence.internal.worker.WorkflowWorker$TaskHandlerImpl.handle(WorkflowWorker.java:1) at com.uber.cadence.internal.worker.PollTaskExecutor.lambda$process$0(PollTaskExecutor.java:71) ... 3 common frames omitted
错误代码
public static void main(String[] args) {
ClientTools.build(GreetingWorkflow.TASK_LIST);
//WorkflowClient workflowClient = ClientTools.getWorkflowClient();
Worker worker = ClientTools.getWorker();
worker.registerWorkflowImplementationTypes(AnotherWolfFlowImpl.class);
//worker.registerActivitiesImplementations(new GreetingAgainActivitiesImpl());
worker.registerActivitiesImplementations(new GreetingActivitiesImpl());
ClientTools.getFactory().start();
System.err.println(" registerActivitiesImplementations ");
}
正确代码
public static void main(String[] args) {
ClientTools.build(GreetingWorkflow.TASK_LIST);
//WorkflowClient workflowClient = ClientTools.getWorkflowClient();
Worker worker = ClientTools.getWorker();
//worker.registerWorkflowImplementationTypes(AnotherWolfFlowImpl.class);
worker.registerWorkflowImplementationTypes(AnotherWolfFlowImpl.class,GreetingWorkFlowImpl.class);
//worker.registerActivitiesImplementations(new GreetingAgainActivitiesImpl());
//worker.registerActivitiesImplementations(new GreetingActivitiesImpl());
worker.registerActivitiesImplementations(new GreetingActivitiesImpl(),new GreetingAgainActivitiesImpl());
ClientTools.getFactory().start();
System.err.println(" registerActivitiesImplementations ");
}



