Fix task instance will generate multiple times when retry interval is 0/s (#13571)

This commit is contained in:
Wenjun Ruan 2023-02-18 23:41:16 +08:00 committed by GitHub
parent dd4804ee4c
commit e8b20def54
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -57,10 +57,19 @@ public class TaskStateEventHandler implements StateEventHandler {
task.getState(), taskStateEvent.getStatus());
Map<Long, Integer> completeTaskMap = workflowExecuteRunnable.getCompleteTaskMap();
if (task.getState().isFinished()
&& (taskStateEvent.getStatus() != null && taskStateEvent.getStatus().isRunning())) {
String errorMessage = String.format(
"The current task instance state is %s, but the task state event status is %s, so the task state event will be ignored",
task.getState(),
taskStateEvent.getStatus());
log.warn(errorMessage);
throw new StateEventHandleError(errorMessage);
}
if (task.getState().isFinished()) {
if (completeTaskMap.containsKey(task.getTaskCode())
&& completeTaskMap.get(task.getTaskCode()) == task.getId()) {
&& completeTaskMap.get(task.getTaskCode()).equals(task.getId())) {
log.warn("The task instance is already complete, stateEvent: {}", stateEvent);
return true;
}