28-Jun-2026 — serialise heavy worker jobs ref #300

build 723commit 3f8576e


What's new

At a glance

Where to find it

Admins continue to use the same places as before:

There is no new admin screen or separate worker to manage.

How it behaves

When the worker is idle, an upload or resize starts immediately. When another heavy job is already running, the new request waits in the shared queue and starts when the active job finishes.

For uploads, the existing upload audit continues to show when the job has been queued and the upload controls remain locked while work is pending. For image resizing, the browser now immediately reports that the job has been queued, displays its queue position, disables further resize actions while the request is queued or running, and warns if another resize is attempted. Busy and queued state is also cleared correctly if a resize fails.

This avoids the previous case where a long-running resize job caused a later resize request to fail with 409 while also slowing an upload that was running at the same time.

How to try it out

  1. Start a saved-image resize from a content or photo page.
  2. While it is running, start a walk upload or submit another resize.
  3. Confirm the second job is queued instead of running concurrently or failing with 409.

  1. Confirm the UI immediately indicates that the job is queued and reports its queue position.
  2. Confirm duplicate resize submissions are prevented while the queued/running job is active.
  3. Confirm the second job starts after the active job completes.
  4. Check the upload audit and resize progress messages for the queued-position feedback.

Technical changes