Skip to content

[1.91.1](https://github.com/taskforcesh/bullmq/compare/v1.91.0...v1.91.1) (2022-09-18)

Source URL: https://docs.bullmq.io/changelog/changelog-v1

  • script-loader: use cache to read script once (#1410) (f956e93)
  • revert “chore: allow esm imports through exports field” (#1388) (8e51272)
  • revert “feat(sandbox): experimental support ESM” (#1384) (7d180eb)
  • clean: consider priority when cleaning waiting jobs (#1357) (ced5be1)
  • parent-priority-check: use tonumber on priority (#1370) (e2043c6)
  • sandbox: experimental support ESM (ed0faff)
  • move-parent-to-wait: emit waiting instead of active event (#1356) (53578dd)
  • flow: consider priority when parent is moved (#1286) (d49760d)
  • clean-jobs-in-set: use ZRANGEBYSCORE when limit > 0 (#1338) (f0d9985)
  • promote: consider empty queue when paused (#1335) (9f742e8)
  • parent: emit waiting event when no pending children (#1296) (aa8fa3f)
  • avoid calling delay() if queue is being closed (#1295) (52a5045)
  • queue: get rid of repeat options from defaultJobOptions (#1284) (cdd2a20)
  • unpack empty metrics in batches (96829db)
  • error-prototype: define custom name for toJSON method (#1272) (66d80da)
  • job: save finishedOn attribute on instance (#1267) (4cf6a63)
  • remove-job: send prefix key instead of jobKey (#1252) (452856a)
  • worker: change the number of concurrent processes (#1256) ref #22 (940dc8f)
  • waiting-children: pass right timestamp value in moveToWaitingChildren (#1260) (0f993f7)
  • get-workers: use blockingConnection client to set clientName (#1255) fixes #1254 (df796bd)
  • flow-producer: easier to build extension (#1250) (aaf637e)
  • job: add job helper attribute for extension (#1242) (4d7ae9e)
  • remove-job: pass right prev param in removed event (#1237) (54df47e)
  • remove-repeatable: return boolean depending on job existence (#1239) ref #1235 (59b0da7)
  • repeatable: emit removed event when removing (#1229) (7d2de8d)
  • remove-parent: check removed record from waiting-children (#1227) (e7b25d0)
  • job: delete token when moving to delayed (#1208) (37acf41)
  • job: remove Error from Promise return in moveToWaitingChildren (#1197) (180a8bf)
  • connection: remove Queue reconnect overrides (#1119) (83f1c79)
  • clean: consider processedOn and finishedOn attributes (#1158) (8c3cb72)
  • queue: close repeat connection when calling close (#1154) (7d79616)
  • clean: speed up clean operation using deletion marker (#1144) (5fb32ef)
  • allow QueueScheduler to be extended (289beb8)
  • queue: sanitize job types in getJobs and getJobsCount (#1113) fixes #1112 (d452b29)
  • move-to-finished: avoid an extra roundtrip when using rate limit (#1131) (1711547)
  • drained: emit event only once when queue has drained the waiting list (#1123) fixes #1121 ref #1070 (b89b4e8)
  • get-waiting-children-count: consider waiting-children status only (#1117) (1820df7)
  • metrics: add metrics support (ab51326)
  • rate-limiter: move job to wait after retry when groupKey is missed (#1103) fixes #1084 (8aeab37)
  • cluster: check for host presence in Upstash validation (#1102) fixes #1101 (54d4eac)
  • retry-jobs: allow to retry completed jobs (#1082) (e17b3f2)
  • connection: throw error when Upstash host is provided (#1098) fixes #1087 (5156d0a)
  • move-to-finished: increment attemptsMade when moving job to active (#1095) fixes #1094 (321b0e1)
  • backoff: validate UnrecoverableError presence (#1074) (1defeac)
  • clean: consider checking parent jobs when cleaning (#1048) (0708a24)
  • remove-parent-dependency: do not emit wait event in hard deletions (#1045) (4069821)
  • update: throw error when missing job key (#1042) (a00ae5c)
  • queue: add retryJobs method for failed jobs (#1024) (310a730)
  • lua: call del command with multiple keys (#1035) (9cfaab8)
  • drain: consider checking parent jobs when draining (#992) (81b7221)
  • retry: delete props in retryJob lua script (#1016) (547cedd)
  • add support for removeOn based on time (6c4ac75)
  • queue-events: add retries-exhausted event (#1010) (e476f35)
  • queue: add JobType and JobState unions for better typing (#1011) (3b9b79d)
  • queue: use 0 as initial value for getJobCountByTypes reducer (#1005) (f0e23ef)
  • worker: blockTime must be integer on older Redis (6fedc0a)
  • remove-job: consider removing parent dependency key in lua scripts (#990) (661abf0)
  • sandbox: exit uncaughtException instead of throwing error (013d6a5)
  • sanboxed-process: support .cjs files (#984) (531e4de)
  • job: throw error when delay and repeat are provided together (#983) (07b0082)
  • queue: add missing error event typing (#979) (afdaac6)
  • update-progress: throw error if job key is missing (#978) ref #977 (b03aaf1)
  • job: use generic types for static methods (#975) (f78f4d0)
  • add deprecated tag in progress and Queue3 class (#973) (6abdf5b)
  • queue: reuse generic typing for jobs (5c10818)
  • worker: reuse generic typing for jobs (9adcdb7)
  • queue-scheduler: add better event typing (#963) (b23c006)
  • worker: fix undefined moveToActive (87e8cab)
  • copy lua files to correct location (2be1120)
  • also export bullmq as an ESM (e97e5b5)
  • move-to-active: add try catch in moveToActive call (#933) (bab45b0)
  • redis-connection: consider cluster redisOptions config (#934) (5130f63)
  • connection: check instance options to console log deprecation message (#927) (fc1e2b9)
  • worker: better handling of block timeout (be4c933)
  • queue-events: add better event typing (#919) (e980080)
  • emit drain event if no jobs left when completing (9ad78a9)
  • worker: use client for setting worker name (af65c2c)
  • worker: make moveToActive protected (d2897ee)
  • worker: always try to move to active after waiting for job (#914) (97b7084)
  • script-loader: lua script loader with include support (#897) (64b6ccf)
  • stalled: save finishedOn when job stalled more than allowable limit (#900) (eb89edf)
  • child-processor: add deprecation warning for progress method (#890) (f80b19a)
  • clean: use range values in lua script (#885) (02ef63a)
  • job: use this when use new operators (#884) (7b84283)
  • job: change private attributes to protected for extensions (#882) (ffcc3f0)
  • load-includes: export includes to be reused in extensions (#877) (b56c4a9)
  • worker: change private attributes to protected for pro extension (#874) (1c73881)
  • clean: speed up clean method when called with limit param (#864) (09b5cb4)
  • queue: add waiting event type declaration (#872) (f29925d)
  • move-to-failed: delete closing check that prevents script execution (#858) fixes #834 (d50814f)
  • override enableReadyCheck, maxRetriesPerRequest fixes reconnection (09ba358)
  • queue-base: deprecation warning on missing connection (2f79802)
  • queue-base: show connection deprecation warning (#832) fixes #829 (5d023fe)
  • properly pass sharedConnection option to worker base class (56557f1)
  • msgpackr: upgrade version to 1.4.6 to support esm bundlers (#818) fixes #813 (913d7a9)
  • msgpack: replace msgpack by msgpackr (dc13a75)
  • queue-getters: only getting the first 2 jobs (653873a)
  • easier to build extensions on top of BullMQ (b1a9e64)
  • sandboxed-process: handle init-failed error (#797) (5d2f553)
  • obliterate: do not pass unused variables (#766) (e9abfa6)
  • obliterate: consider dependencies and processed keys (#765) (fd6bad8)
  • flow-producer: use default prefix in add method (#763) fixes #762 (fffdb55)
  • running: move running attribute before first async call (#756) (f7f0660)
  • queue-events: launch without launching process (#750) (23a2360)
  • wait-for-job: add catch block and emit error (#749) (b407f9a)
  • connection: fail only if redis connection does not recover (#751) (8d59ced)
  • wait-until-finished: isFinished return failedReason or returnValue (#743) fixes #555 (63acae9)
  • add-job: throw error when missing parent key (#739) (d751070)
  • redis-connection: improve closing fixes #721 (9d8eb03)
  • queue-scheduler: launch without launching process (#729) (f1932a7), closes #436
  • queuescheduler: handle shared connections fixes #721 (32a2b2e)
  • worker: use spread operator in processing map keys (#720) (32f1e57)
  • retry: throw error when retry non failed job (#717) (bb9b192)
  • queue-events: add waiting-children event (#704) (18b0b79)
  • events: add added event when job is created (#699) (f533cc5)
  • protect emit calls with throw/catch (79f879b)
  • rate-limiter: check groupKey is not undefined (999b918)
  • redis-connection: add error event in waitUntilReady (ac4101e)
  • move clientCommandMessageReg to utils (dd5d555)
  • connection hangs with failed connection fixes #656 (c465611)
  • worker: retry with delay errors in run loop (409fe7f)
  • move-to-finished: remove stalled jobs when finishing (3867126)
  • repeatable: validate endDate when adding next repeatable job (1324cbb)
  • connect if redis client has status “wait” (f711717)
  • queue: ensure the Queue constructor doesn’t try to set queue options if the client is closed (b40c6eb)
  • sandbox: use updateProgress method name (27d62c3)
  • worker+scheduler: add a “running” attribute for healthchecking (aae358e)
  • reprocess: do not store job.id in added list (9c0605e)
  • queue: add missing events typings (b42e78c)
  • stalled-jobs: move stalled jobs to wait in batches (a23fcb8), closes #422
  • job: add changeDelay method for delayed jobs (f0a9f9c)
  • worker: change active event typing (220b4f6)
  • queue-events: fix drained typing (9cf711d)
  • worker: add active event typing (5508cdf)
  • worker: add progress event typing (119cb7c)
  • worker: add drained event typing (ed5f315)
  • worker: await for processing functions (0566804)
  • redis-connection: remove error event listener from client (2d70fe7)
  • job: destructure default opts for pagination (73363a5)
  • job: add getDependenciesCount method (ae39a4c)
  • flow-producer: add getFlow method (ce93d04)
  • worker: remove processed key when removeOnComplete (4ec1b73)
  • job: extend getDependencies to support pagination (9b61bbb)
  • job: parse results in getDependencies for processed jobs (6fdc701)
  • move-to-waiting-children: make opts optional (33bd76a)
  • move-stalled-jobs-to-wait: send failedReason to queueEvents (7c510b5)
  • add move to waiting children for manual processing (#477) (f312f29)
  • obliterate: remove job logs (ea91895)
  • get-workers: use strict equality on name fixes #564 (4becfa6)
  • flow-producer: expose client connection (17d4263)
  • repeat: add immediately opt for repeat (d095573)
  • movetofinished: use parent queue for events (1b17b62)
  • removejob: delete processed hash (a2a5058)
  • ensure connection reconnects when pausing fixes #160 (f38fee8)
  • getjoblogs: no reversed pagination (fb0c3a5)
  • flow-producer: use custom jobId as parentId for children fixes #552 (645b576)
  • custombackoff: provide job as third parameter (ddaf8dc)
  • flow-producer: process parent with children as empty array fixes #547 (48168f0)
  • addbulk: should not consider repeat option (c85357e)
  • job: add sizeLimit option when creating a job (f10aeeb)
  • deps: upgrading lodash to 4.17.21 (6e90c3f)
  • cluster: add redis cluster support (5a7dd14)
  • redisclient: not reference types from import (022fc04)
  • sandbox: handle broken processor files (2326983)
  • add option for non-blocking getNextJob (13ce2cf)
  • add return type for job.waitUntilFinished() (59ede97)
  • job: pass parent opts to addBulk (7f21615)
  • addjob: fix redis cluster CROSSSLOT (a5fd1d7)
  • jobcreate: allow passing parent in job.create (ede3626)
  • add typing for addNextRepeatableJob (a3be937)
  • movetocompleted: should not complete before children (812ff66)
  • obliterate: correctly remove many jobs (b5ae4ce)
  • movetodelayed: check if job is in active state (4e63f70)
  • worker: make token optional in processor function fixes #490 (3940bd7)
  • worker: passing token in processor function (2249724)
  • movetocompleted: throw an error if job is not in active state (c2fe5d2)
  • remove repeatable with obliterate (1c5e581)
  • add workerDelay option to limiter (9b6ab8a)
  • add parentKey property to Job (febc60d)
  • rename Flow to FlowProducer class (c64321d)
  • add remove support for flows (4e8a7ef)
  • job: consider waiting-children state (2916dd5)
  • read lua scripts serially (69e73b8)
  • add support for flows (parent-child dependencies) (#454) (362212c)
  • obliterate: safer implementation (82f571f)
  • add method to “obliterate” a queue, fixes #430 (624be0e)
  • specify promise type to make TS 4.1 and 4.2 happy. (#418) (702f609)
  • remove “client” property of QueueBaseOptions (#324) (e0b9e71)
  • remove next job in removeRepeatableByKey fixes #165 (fb3a7c2)
  • add jobId support to repeatable jobs fixes #396 (c2dc669)
  • worker: avoid possible infinite loop fixes #389 (d05566e)
  • improve job timeout notification by giving the job name and id in the error message (#387) (ca886b1)
  • job finish queue events race condition (355bca5)
  • job: expose extendLock as a public method (17e8431)
  • add support for manually processing jobs fixes #327 (e42bfd2)
  • correctly handle “falsy” data values fixes #264 (becad91)
  • worker: setname on worker blocking connection (645b633)
  • correctly handle “falsy” data values fixes #264 (cf1dbaf)
  • add ability to get if queue is paused or not (e98b7d8)
  • promote jobs to the right “list” when paused (d3df615)
  • clientCommandMessageReg to support GCP memorystore v5 (8408dda)
  • add generic type to processor (d4f6501)
  • add name and return types to queue, worker and processor (4879715)
  • job: remove listeners before resolving promise (563ce92)
  • worker: continue processing if handleFailed fails. fixes #286 (4ef1cbc)
  • worker: fix memory leak on Promise.race (#282) (a78ab2b)
  • worker: setname on worker blocking connection (#291) (50a87fc)
  • remove async for loop in child pool fixes #229 (d77505e)
  • sandbox: kill child workers gracefully (#243) (4262837)
  • add grouped rate limiting (3a958dd)
  • typescript: fix typings, upgrade ioredis dependencies (#220) (7059f20)
  • worker: return this.closing when calling close (b68c845)
  • redis-connection: run the load command for reused redis client (fab9bba)
  • scheduler: remove unnecessary division by 4096 (4d25e95)
  • scheduler: divide timestamp by 4096 in update set fixes #168 (0c5db83)
  • scheduler: divide next timestamp by 4096 (#204) (9562d74)
  • queue-base: error event is passed through (ad14e77)
  • redis-connection: error event is passed through (a15b1a1)
  • worker: error event is passed through (d7f0374)
  • worker: do not use global child pool fixes #172 (bc65f26)
  • workers: do not call super.close() (ebd2ae1)
  • make sure closing is returned in every close call (88c5948)
  • scheduler: duplicate connections fixes #174 (011b8ac)
  • worker: return this.closing when calling close (06d3d4f)
  • removed deprecated and unused node-uuid (c810579)
  • job: added nullable/optional properties (cef134f)
  • sandbox: If the child process is killed, remove it from the pool. (8fb0fb5)
  • restore the Job timestamp when deserializing JSON data (#138) (#152) (c171bd4)
  • modified imports to work when esModuleInterop is disabled (#132) (01681f2)
  • cleanup signatures for queue add and addBulk (#127) (48e221b)
  • exit code 12 when using inspect with child process (#137) (43ebc67)
  • types: add sandboxed job processor types (#114) (a50a88c)
  • modified QueueGetters.getJob and Job.fromId to also return null to (65183fc)
  • modified QueueGetters.getJob and Job.fromId to return undefined (ede352b)
  • don’t fail a job when the worker already lost the lock (23c0bf7)
  • remove duplicate active entry (1d2cca3)
  • get rid of flushdb/flushall in tests (550c67b)
  • delete logs when cleaning jobs in set (b11c6c7)
  • change default QueueEvents lastEventId to $ (3c5b01d)
  • ensure QE ready before adding test events (fd190f4)
  • explicitly test the behavior of .on and .once (ea11087)
  • check of existing redis instance (dd466b3)
  • add generic type to job data and return value (87c0531)
  • remove delay dependency (97e1a30)
  • remove dependence on Bluebird.delay #67 (bedbaf2)
  • check in moveToFinished to use default val for opts.maxLenEvents (d1118aa)
  • avoid Job<->Queue circular json error (5752727)
  • avoid the .toJSON serializer interface #70 (5941b82)
  • job.progress() return last progress for sandboxed processors (5c4b146)
  • test worker extends job lock while job is active (577efdf)
  • only run coveralls after success (bd51893)
  • added code coverage and coveralls (298cfc4)
  • added missing deps for coverage (6f3ab8d)
  • ignore commitlint file in coverage (f874441)
  • only upload coverage once after all tests pass (a7f73ec)
  • initial version of job locking mechanism (1d4fa38)
  • save job stacktrace on failure (85dfe52)
  • simplify logic for stackTraceLimit (296bd89)
  • add compilation step before running tests (64abc13)
  • add extra client to worker fixes #34 (90bd891)
  • add missing dependency (b92e330)
  • check closing after resuming from pause (7b2cef3)
  • default opts (333c73b)
  • do not block if blockTime is zero (13b2df2)
  • do not exec if closing (b1d1c08)
  • do not trim if maxEvents is undefined (7edd8f4)
  • emit wait event in add job (39cba31)
  • fix a couple of job tests (e66b97b)
  • fix compiling error (3cf2617)
  • fix more tests (6a07b35)
  • fix progress script (4228e27)
  • fix retry functionality (ec41ea4)
  • fix several floating promises (590a4a9)
  • fixed reprocess lua script (b78296f)
  • improve concurrency mechanism (a3f6148)
  • improve disconnection for queue events (56b53a1)
  • initialize events comsumption in constructor (dbb66cd)
  • make ioredis typings a normal dependency (fb80b90)
  • minor fixes (7791cda)
  • parse progres and return value in events (9e43d0e)
  • properly emit event for progress (3f70175)
  • reduce drain delay to 5 seconds (c6cfe7c)
  • remove buggy close() on redis-connection (fixes 5 failing tests) (64c2ede)
  • remove unused dependencies (34293c8)
  • replace init by waitUntilReady (4336161)
  • reworked initialization of redis clients (c17d4be)
  • several fixes to make the lib work on other ts projects (3cac1b0)
  • throw error messages instead of codes (9267541)
  • update tests after merge (51f75a4)
  • wait until ready before trying to get jobs (f3b768f)
  • connections: reused connections (1e808d2)
  • waitUntilFinished improvements (18d4afe)
  • add cleaned event (c544775)
  • add empty method (4376112)
  • add retry errors (f6a7990)
  • add script to generate typedocs (d0a8cb3)
  • add some new tests for compat class, more minor fixes (bc0f653)
  • add support for adding jobs in bulk (b62bddc)
  • add trimEvents method to queue client (b7da7c4)
  • automatically trim events (279bbba)
  • emit global stalled event fixes #10 (241f229)
  • get rid of Job3 in favor of bullmq Job class (7590cea)
  • implement close in redis connection fixes #8 (6de8b48)
  • make delay in backoffs optional (30d59e5)
  • move async initialization to constructors (3fbacd0)
  • port a lot of functionality from bull 3.x (ec9f3d2)
  • port more features from bull 3.x (75bd261)
  • ported tests and functionality from bull 3 (1b6b192)
  • workers: support for async backoffs (c555837)
  • remove support of bull3 config format in compat class (d909486)
  • support global:progress event (60f4d85)
  • trim option to event stream #21 & fix #17 (7eae653)
  • Removed humans, they weren’t doing fine with animals.
  • Animals are now super cute, all of them.
  • Introduced animals into the world, we believe they’re going to be a neat addition.