Skip to content

v0.2.0: BullMQ engine

Choose a tag to compare

@ralyodio ralyodio released this 19 Oct 13:33
f458f6b

The standard queue for every site is now BullMQ. createDaemon({ redis }) runs one queue per site on the site's own Redis: a job scheduler fires the dispatcher tick, one Worker runs due work at the site's concurrency. Same API and scheduling rules as 0.1 (error ladder, per-host serial, retire, nextIn, resumable pipelines). Run records and task state live in Redis beside the queue unless the site passes its own store; each app keeps its data where it wants.

Hardened for the fleet's BullMQ incidents: job ids never contain ':'; processors return nothing, completed jobs are removed and event streams capped on Queue and Worker; no QueueEvents; a watchdog pings Redis through the daemon's own connection and exits after three misses; status() gives up on Redis after 3 s.

Also: the local engine no longer unrefs its timer (a poller with no server exited after one round). bullmq + ioredis are optional peer dependencies.