bunqueue v2.7.18
blog · release
bunqueue v2.7.18
Fixes 5 bugs. getJobsAsync() (and getWaitingAsync/getDelayedAsync/getActiveAsync/getCompletedAsync/getFailedAsync) dropped job.opts over TCP: listed jobs returned opts: {}, so job.opts.attempts/timeout/etc.
To install bunqueue v2.7.18
Section titled “To install bunqueue v2.7.18”bun add bunqueue@2.7.18npm install bunqueue@2.7.18To upgrade bunqueue
Section titled “To upgrade bunqueue”bun add bunqueue@latestChanges
Section titled “Changes”JobOptions.removeOnComplete/removeOnFailnarrowed toboolean: the previously documentednumber | KeepJobs(age/count retention) forms were never implemented and were silently coerced inconsistently (embedded kept the job, TCP removed it immediately for the same input). The type now rejects the unsupported forms at compile time, the single-PUSHpath coerces for embedded/TCP parity, and the server hardensparseCoreOptionswithBoolean(). (Worker-levelremoveOnComplete/removeOnFaildefaults are unaffected.)
Bugfixes
Section titled “Bugfixes”getJobsAsync()(andgetWaitingAsync/getDelayedAsync/getActiveAsync/getCompletedAsync/getFailedAsync) droppedjob.optsover TCP: listed jobs returnedopts: {}, sojob.opts.attempts/timeout/etc. wereundefined, whilegetJob(id).optswas correct. The server already sends the full job; the client now reflects the completeoptsviametaFromJob. This closes the slim-optslimitation noted in 2.7.17.- Returned Job hardcoded
deduplicationId/parentKey/parent/repeatJobKey:createJobProxy/createSimpleJobset these toundefinedeven when known at call time, diverging from embedded mode. They are now derived from the requested options (sharedreflectFields), matchingbuildJobProperties. FlowProducersilently dropped extended job options: flow nodes ignoredlifo,deduplication,durable,stallTimeout,stackTraceLimit,keepLogs,sizeLimit,repeat,timestampanddebouncein both embedded and TCP modes (durable: truebeing ignored meant a critical flow job used buffered writes instead of immediate persistence).flowPushnow forwards the full option set, mirroringQueue.add.job.toJSON()/asJSON()hardcodedopts: {}anddelay: 0: the BullMQ-compatible serializers on a TCP/bulk-created Job lost the reflected options. They now reflectopts,delayandparentKey.changePriority({ priority, lifo })silently droppedlifo: the option was accepted by the type but never applied (the engine had no way to honor it).lifois now threaded end-to-end:ChangePriorityCommand→ server handler →queueManager.changePriority→jobManagement.changeJobPriority→priorityQueue.updatePriority(updates the tie-break flag). Forwarded from all SDK surfaces:Queue, the job proxies, the in-processor job handler, andFlowProducerjob nodes.
Thanks to 1 contributor!
Section titled “Thanks to 1 contributor!”← bunqueue v2.7.17 · Release on GitHub · Commits since v2.7.17 · Full changelog · All posts