Skip to content

Commit d50b576

Browse files
boma96tymarats
authored andcommitted
Fix issue with timed out tasks not being reported by TaskStatusListener (#6)
1 parent 2840462 commit d50b576

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

core/src/main/java/com/netflix/conductor/core/execution/DeciderService.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import com.netflix.conductor.core.execution.mapper.TaskMapper;
3737
import com.netflix.conductor.core.execution.mapper.TaskMapperContext;
3838
import com.netflix.conductor.core.execution.tasks.SystemTaskRegistry;
39+
import com.netflix.conductor.core.listener.TaskStatusListener;
3940
import com.netflix.conductor.core.utils.ExternalPayloadStorageUtils;
4041
import com.netflix.conductor.core.utils.IDGenerator;
4142
import com.netflix.conductor.core.utils.ParametersUtils;
@@ -65,7 +66,7 @@ public class DeciderService {
6566
private final MetadataDAO metadataDAO;
6667
private final SystemTaskRegistry systemTaskRegistry;
6768
private final long taskPendingTimeThresholdMins;
68-
69+
private final TaskStatusListener taskStatusListener;
6970
private final Map<String, TaskMapper> taskMappers;
7071

7172
public DeciderService(
@@ -76,14 +77,16 @@ public DeciderService(
7677
SystemTaskRegistry systemTaskRegistry,
7778
@Qualifier("taskMappersByTaskType") Map<String, TaskMapper> taskMappers,
7879
@Value("${conductor.app.taskPendingTimeThreshold:60m}")
79-
Duration taskPendingTimeThreshold) {
80+
Duration taskPendingTimeThreshold,
81+
TaskStatusListener taskStatusListener) {
8082
this.idGenerator = idGenerator;
8183
this.metadataDAO = metadataDAO;
8284
this.parametersUtils = parametersUtils;
8385
this.taskMappers = taskMappers;
8486
this.externalPayloadStorageUtils = externalPayloadStorageUtils;
8587
this.taskPendingTimeThresholdMins = taskPendingTimeThreshold.toMinutes();
8688
this.systemTaskRegistry = systemTaskRegistry;
89+
this.taskStatusListener = taskStatusListener;
8790
}
8891

8992
public DeciderOutcome decide(WorkflowModel workflow) throws TerminateWorkflowException {
@@ -773,10 +776,12 @@ void timeoutTaskWithTimeoutPolicy(String reason, TaskDef taskDef, TaskModel task
773776
case RETRY:
774777
task.setStatus(TIMED_OUT);
775778
task.setReasonForIncompletion(reason);
779+
taskStatusListener.onTaskTimedOut(task);
776780
return;
777781
case TIME_OUT_WF:
778782
task.setStatus(TIMED_OUT);
779783
task.setReasonForIncompletion(reason);
784+
taskStatusListener.onTaskTimedOut(task);
780785
throw new TerminateWorkflowException(reason, WorkflowModel.Status.TIMED_OUT, task);
781786
}
782787
}
@@ -851,6 +856,7 @@ private void timeoutTask(TaskDef taskDef, TaskModel task) {
851856
LOGGER.debug(reason);
852857
task.setStatus(TIMED_OUT);
853858
task.setReasonForIncompletion(reason);
859+
taskStatusListener.onTaskTimedOut(task);
854860
}
855861

856862
public List<TaskModel> getTasksToBeScheduled(

0 commit comments

Comments
 (0)