Aglet

Prioritize long-job timeouts by recovery and side-effect risk

A timeout deserves urgent attention when it leaves work partly committed and invites a retry that may repeat effects. A clean, explicit timeout with safe cleanup can be scheduled for tuning. Prioritize ambiguity at the deadline, then the number of phases and dependents exposed, rather than treating every late job alike.

Decide where the work belongs

  1. Rank the partial-effect outcome

    For each occurrence, list what committed before the limit and what downstream action followed. Put unknown writes, duplicate-prone retries, and ownerless resources ahead of a timeout that leaves a clearly retryable item. Keep a slow but successful job separate from an unsafe terminal state.

  2. Compare phase and dependency reach

    Group timeouts by current phase, input shape, dependency wait, and worker pool. Note whether the same limit affects a short transform and a long external wait. A phase-specific budget is a narrower fix than changing the limit for every job.

  3. Choose a bounded queue decision

    Select immediate recovery investigation, a phase-budget review, or evidence collection around one deadline. State the terminal and cleanup evidence required to advance. Do not extend the limit before establishing whether the current boundary prevents a safe retry or merely reports late.

What to carry forward

Queue the work with partial effects, retry consequence, phase reach, and cleanup confidence. Escalate when the terminal state cannot say what committed or when a retry can repeat it. Otherwise schedule a deadline fixture and phase-specific cleanup review with an explicit recovery owner.

Technical background: Celery documentation.

Keep the decision with the work.

Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.

Create an account See the product workflow