Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions clients/python/src/taskbroker_client/worker/workerchild.py
Original file line number Diff line number Diff line change
Expand Up @@ -267,13 +267,22 @@ def await_task_futures(task: ActivationWithPendingFutures) -> None:
# We don't care about the actual result value,
# we just care if result() raises or not
[f.result(RESULT_TIMEOUT_SEC) for f in task.pending_futures]
produce_status = "success"
# If any pending producer futures failed, retry the task
except Exception:
task.status = TASK_ACTIVATION_STATUS_FAILURE
if task.task_func.retry:
retry_state = task.inflight.activation.retry_state
if not task.task_func.retry.max_attempts_reached(retry_state):
task.status = TASK_ACTIVATION_STATUS_RETRY
produce_status = "failure"
metrics.incr(
"taskworker.worker.produce.result",
tags={
"status": produce_status,
"processing_pool": processing_pool_name,
},
)
pending_task_futures.remove(task)
_task_execution_complete(
inflight=task.inflight,
Expand Down
Loading