Establish what is happening
Follow one aging job
Record the low-priority job’s ready time, queue, eligibility, claim attempts if available, and current age. Note whether it remains visible and valid. Choose a comparable favored job so the comparison includes worker class and actual readiness.
Describe the arrival stream
List favored jobs that claimed during the wait, their ready times, service durations, and worker occupancy. Separate no-capacity periods from moments when a worker became free and still selected newer work. This distinguishes starvation from a continuously full pool.
Compare quiet and sustained load
Run or inspect a quiet interval where the old job can claim, then a sustained stream of favored arrivals. Keep queue policy and worker count fixed. Identify the first available service opportunity the low-priority job misses and preserve its evidence.
What to carry forward
Return the aging job, favored arrival stream, worker availability, missed service opportunity, and wait-age evidence. Classify the scope as capacity, eligibility, selector preference, or starvation under a sustained mix. Keep the claim open if no worker became available while the job waited.
Technical background: Rails guides.
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