Releases: ueberBrot/monque
@monque/tsed@1.7.2
@monque/tsed@1.7.1
@monque/tsed@1.7.0
@monque/core@1.7.2
Patch Changes
-
#329
0f8ff15Thanks @ueberBrot! - Add jitter to exponential backoff to prevent thundering-herd retries -
#330
1cbb22bThanks @ueberBrot! - Addnameprefix to atomic claim compound index for per-worker scan efficiency
@monque/tsed@1.6.0
@monque/core@1.7.1
@monque/tsed@1.5.1
@monque/tsed@1.5.0
@monque/core@1.7.0
Minor Changes
-
#249
2c7c079Thanks @ueberBrot! - Add deprecation console warning fordefaultConcurrencyandmaxConcurrencyoptions. -
#260
c11798bThanks @ueberBrot! - Parallelized job acquisition in the poll loop usingPromise.allSettledto lower wall-clock acquisition latency / reduce serialized DB waits (fans out onefindOneAndUpdateper free slot).
Patch Changes
-
#269
cb707b9Thanks @ueberBrot! - Validate job names and unique keys at the public API boundary so invalid identifiers fail fast before reaching MongoDB operations. -
#266
9c75d1cThanks @ueberBrot! - Fix.then()to.finally()inexecutePollAndScheduleNextto ensure the next poll is always scheduled, even ifscheduleNextPollthrows. This prevents silently swallowed rejections when the callback in.then()throws. -
#258
218d398Thanks @ueberBrot! - ReplacegetActiveJobs()array allocation withgetActiveJobCount()in shutdown path. The previous implementation created a throw-awaystring[]on every call just to check.length. The new method returns a count directly usingMap.size, avoiding unnecessary array allocations during shutdown polling. -
#259
b0babc4Thanks @ueberBrot! - Replace the O(workers) iteration ingetTotalActiveJobs()with an O(1) counter that updates on job acquisition and completion. -
#263
a30186fThanks @ueberBrot! - Add compound index for job retention to avoid collection scan during cleanup -
#264
c2b046eThanks @ueberBrot! - Deduplicatenew Date()calls in update operations. Instead of creating multiplenew Date()instances milliseconds apart within the same logical operation, methods likecancelJob,retryJob, andcompleteJobnow capture a singleconst now = new Date()and reuse it for all timestamp fields, ensuring consistent timestamps. -
#265
79300c0Thanks @ueberBrot! - OptimizecancelJob,retryJob, andrescheduleJobby removing redundantfindOnepre-checks. These operations now use an optimisticfindOneAndUpdatefirst, reducing database round-trips for the common happy paths. -
#262
1b6e29fThanks @ueberBrot! - Removed redundant$unsetoperations forheartbeatIntervalon job completion/failure to improve performance and retain observability metadata. -
#257
d71049dThanks @ueberBrot! - Replace thesetInterval(100)busy-loop instop()with a reactive drain promise that resolves instantly when all active jobs finish. -
#267
965f8aaThanks @ueberBrot! - Set maxListeners to 20 on Monque EventEmitter to prevent memory leaks in long-running processes.