|
@@ -71,6 +71,7 @@ import org.apache.dolphinscheduler.server.master.dispatch.executor.NettyExecutor
|
|
|
import org.apache.dolphinscheduler.server.master.event.StateEvent;
|
|
|
import org.apache.dolphinscheduler.server.master.event.StateEventHandleError;
|
|
|
import org.apache.dolphinscheduler.server.master.event.StateEventHandleException;
|
|
|
+import org.apache.dolphinscheduler.server.master.event.StateEventHandleFailure;
|
|
|
import org.apache.dolphinscheduler.server.master.event.StateEventHandler;
|
|
|
import org.apache.dolphinscheduler.server.master.event.StateEventHandlerManager;
|
|
|
import org.apache.dolphinscheduler.server.master.event.TaskStateEvent;
|
|
@@ -315,6 +316,13 @@ public class WorkflowExecuteRunnable implements Callable<WorkflowSubmitStatue> {
|
|
|
stateEvent,
|
|
|
stateEventHandleException);
|
|
|
ThreadUtils.sleep(Constants.SLEEP_TIME_MILLIS);
|
|
|
+ } catch (StateEventHandleFailure stateEventHandleFailure) {
|
|
|
+ logger.error("State event handle failed, will move event to the tail: {}",
|
|
|
+ stateEvent,
|
|
|
+ stateEventHandleFailure);
|
|
|
+ this.stateEvents.remove(stateEvent);
|
|
|
+ this.stateEvents.offer(stateEvent);
|
|
|
+ ThreadUtils.sleep(Constants.SLEEP_TIME_MILLIS);
|
|
|
} catch (Exception e) {
|
|
|
// we catch the exception here, since if the state event handle failed, the state event will still keep
|
|
|
// in the stateEvents queue.
|