Skip to content

fix(queue): BullMQ 6 job schedulers — nichedb.dev is down (boot crash since #241) - #242

Merged
ralyodio merged 2 commits into
mainfrom
fix/bullmq6-job-schedulers
Oct 26, 2026
Merged

ralyodio merged 2 commits into
mainfrom
fix/bullmq6-job-schedulers

Conversation

@ralyodio

Copy link
Copy Markdown
Contributor

nichedb.dev has been 502 since #241 deployed: the app crash-loops at boot with queue.getRepeatableJobs is not a function. BullMQ 6 removed repeatable jobs, and add(..., {repeat}) now adds one plain job, so every ticker (ingest, scan, enrich, stats, gin, dumps, tlds, traffic) would also have stopped recurring.

  • installSchedules → upsertJobScheduler per spec (scheduleSpecs()), and it removes every scheduler the code doesn't name. That also clears the legacy 5.x repeatables in Redis, which v6 workers can't run. Verified against a real Redis 8: v5-created repeatables are listed by key and removed, and the new scheduler survives.
  • Also carries the follow-up commit feat(sports): sportsdb-schedule — TheSportsDB's whole fixture calendar (0.50.0) #240's squash missed: no broadcastSource on TheSportsDB fixtures without a broadcaster.

🤖 Generated with Claude Code

ralyodio and others added 2 commits October 26, 2026 13:21
…adcaster

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…leJobs

#241 moved to bullmq 6, which dropped repeatable jobs: getRepeatableJobs
and removeRepeatableByKey are gone (boot crash: 'queue.getRepeatableJobs
is not a function') and add(..., {repeat}) silently adds one plain job.
installSchedules now upserts job schedulers and removes every scheduler
the code does not name, which also clears the 5.x repeatables in Redis
(verified against a real Redis: v6 lists them by key and removes them).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ralyodio
ralyodio merged commit 4a1125e into main Oct 26, 2026
3 checks passed
ralyodio added a commit that referenced this pull request Oct 26, 2026
)

Re-lands #241 (reverted in #243) on top of #242, which ported installSchedules
to upsertJobScheduler/getJobSchedulers/removeJobScheduler. Adds a Redis-backed
test that runs installSchedules twice in a child process (fails on the old
getRepeatableJobs code with 'is not a function').

bullmq 6, ioredis 6, simplewebauthn 14, coinpay 0.25; retention.js reads the raw
client from queue.getBackend().client. Overrides sharp ^0.35.5, tmp ^0.2.6.
biome 2.6 migrate; md/yaml left out of biome. Bun 1.4.4.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.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