Skip to content

Supervise delayed job promotion - #11

Open
jbaxendale-ut wants to merge 1 commit into
socketry:mainfrom
user-interviews:fix/delayed-promoter-supervision
Open

Supervise delayed job promotion#11
jbaxendale-ut wants to merge 1 commit into
socketry:mainfrom
user-interviews:fix/delayed-promoter-supervision

Conversation

@jbaxendale-ut

@jbaxendale-ut jbaxendale-ut commented Sep 3, 2026

Copy link
Copy Markdown

A transient Redis failure could terminate the delayed-job promotion loop, leaving scheduled jobs unprocessed until the server restarted. Redis script-cache eviction (NOSCRIPT) is one concrete example.

Disclaimer: developed with the help of Codex as I was investigating latency issues in an LLM-moderated interview flow in our application. Let me know if this seems in appropriate, but wanted to offer my changes (running in production now) upstream see also socketry/async-job-adapter-active_job#29

Keeps the promoter alive with bounded exponential backoff, reloads the Lua script after NOSCRIPT, and provides optional, application-neutral failure and recovery instrumentation with configurable timings.

Types of Changes

  • Bug fix.
  • Maintenance.

Contribution

A transient Redis error can terminate the promotion loop and leave due jobs unprocessed until the server restarts. Redis script-cache eviction is one occurrence of this failure.

Keep the promoter running with bounded exponential backoff, reload the move script after NOSCRIPT, and expose application-neutral failure and recovery instrumentation. This lets any Redis-backed AsyncJob deployment restore scheduled work automatically and surface outages without a monitoring-service dependency.

Signed-off-by: Jeff Baxendale <jbaxendale@usertesting.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant