@monque/core 1.1.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -1
- package/dist/CHANGELOG.md +10 -0
- package/dist/README.md +20 -1
- package/dist/index.cjs +43 -13
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +40 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +40 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +43 -13
- package/dist/index.mjs.map +1 -1
- package/package.json +10 -14
- package/src/scheduler/monque.ts +5 -3
- package/src/scheduler/services/job-processor.ts +60 -5
- package/src/scheduler/services/types.ts +15 -3
- package/src/scheduler/types.ts +43 -1
package/dist/index.d.cts
CHANGED
|
@@ -635,7 +635,8 @@ interface WorkerOptions {
|
|
|
635
635
|
* maxRetries: 10,
|
|
636
636
|
* baseRetryInterval: 1000,
|
|
637
637
|
* shutdownTimeout: 30000,
|
|
638
|
-
*
|
|
638
|
+
* workerConcurrency: 5, // Per-worker default
|
|
639
|
+
* instanceConcurrency: 20, // Global instance limit
|
|
639
640
|
* });
|
|
640
641
|
* ```
|
|
641
642
|
*/
|
|
@@ -676,7 +677,18 @@ interface MonqueOptions {
|
|
|
676
677
|
shutdownTimeout?: number;
|
|
677
678
|
/**
|
|
678
679
|
* Default number of concurrent jobs per worker.
|
|
680
|
+
*
|
|
681
|
+
* This is the per-worker concurrency limit applied when a worker is registered
|
|
682
|
+
* without specifying its own `concurrency` option.
|
|
683
|
+
*
|
|
684
|
+
* @default 5
|
|
685
|
+
*/
|
|
686
|
+
workerConcurrency?: number;
|
|
687
|
+
/**
|
|
688
|
+
* Default number of concurrent jobs per worker.
|
|
689
|
+
*
|
|
679
690
|
* @default 5
|
|
691
|
+
* @deprecated Use `workerConcurrency` instead. Will be removed in a future major version.
|
|
680
692
|
*/
|
|
681
693
|
defaultConcurrency?: number;
|
|
682
694
|
/**
|
|
@@ -731,6 +743,33 @@ interface MonqueOptions {
|
|
|
731
743
|
*/
|
|
732
744
|
interval?: number;
|
|
733
745
|
} | undefined;
|
|
746
|
+
/**
|
|
747
|
+
* Maximum number of concurrent jobs processed by this instance across all registered workers.
|
|
748
|
+
*
|
|
749
|
+
* If reached, the scheduler will stop claiming new jobs until active jobs complete.
|
|
750
|
+
* Use this to prevent a single instance from overwhelming system resources.
|
|
751
|
+
*
|
|
752
|
+
* Note: This is an instance-level limit. Each worker still respects its own `concurrency`
|
|
753
|
+
* setting, but the total across all workers cannot exceed this limit.
|
|
754
|
+
*
|
|
755
|
+
* @example
|
|
756
|
+
* ```typescript
|
|
757
|
+
* const monque = new Monque(db, {
|
|
758
|
+
* instanceConcurrency: 10, // Instance processes max 10 jobs total
|
|
759
|
+
* workerConcurrency: 5, // Each worker defaults to 5 concurrent jobs
|
|
760
|
+
* });
|
|
761
|
+
*
|
|
762
|
+
* // With 3 workers at concurrency 5, normally 15 jobs could run.
|
|
763
|
+
* // With instanceConcurrency: 10, only 10 jobs run at any time.
|
|
764
|
+
* ```
|
|
765
|
+
*/
|
|
766
|
+
instanceConcurrency?: number | undefined;
|
|
767
|
+
/**
|
|
768
|
+
* Maximum number of concurrent jobs processed by this instance across all registered workers.
|
|
769
|
+
*
|
|
770
|
+
* @deprecated Use `instanceConcurrency` instead. Will be removed in a future major version.
|
|
771
|
+
*/
|
|
772
|
+
maxConcurrency?: number | undefined;
|
|
734
773
|
}
|
|
735
774
|
//#endregion
|
|
736
775
|
//#region src/scheduler/monque.d.ts
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/jobs/types.ts","../src/jobs/guards.ts","../src/events/types.ts","../src/workers/types.ts","../src/scheduler/types.ts","../src/scheduler/monque.ts","../src/shared/errors.ts","../src/shared/utils/backoff.ts","../src/shared/utils/cron.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/jobs/types.ts","../src/jobs/guards.ts","../src/events/types.ts","../src/workers/types.ts","../src/scheduler/types.ts","../src/scheduler/monque.ts","../src/shared/errors.ts","../src/shared/utils/backoff.ts","../src/shared/utils/cron.ts"],"mappings":"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"}
|
package/dist/index.d.mts
CHANGED
|
@@ -635,7 +635,8 @@ interface WorkerOptions {
|
|
|
635
635
|
* maxRetries: 10,
|
|
636
636
|
* baseRetryInterval: 1000,
|
|
637
637
|
* shutdownTimeout: 30000,
|
|
638
|
-
*
|
|
638
|
+
* workerConcurrency: 5, // Per-worker default
|
|
639
|
+
* instanceConcurrency: 20, // Global instance limit
|
|
639
640
|
* });
|
|
640
641
|
* ```
|
|
641
642
|
*/
|
|
@@ -676,7 +677,18 @@ interface MonqueOptions {
|
|
|
676
677
|
shutdownTimeout?: number;
|
|
677
678
|
/**
|
|
678
679
|
* Default number of concurrent jobs per worker.
|
|
680
|
+
*
|
|
681
|
+
* This is the per-worker concurrency limit applied when a worker is registered
|
|
682
|
+
* without specifying its own `concurrency` option.
|
|
683
|
+
*
|
|
684
|
+
* @default 5
|
|
685
|
+
*/
|
|
686
|
+
workerConcurrency?: number;
|
|
687
|
+
/**
|
|
688
|
+
* Default number of concurrent jobs per worker.
|
|
689
|
+
*
|
|
679
690
|
* @default 5
|
|
691
|
+
* @deprecated Use `workerConcurrency` instead. Will be removed in a future major version.
|
|
680
692
|
*/
|
|
681
693
|
defaultConcurrency?: number;
|
|
682
694
|
/**
|
|
@@ -731,6 +743,33 @@ interface MonqueOptions {
|
|
|
731
743
|
*/
|
|
732
744
|
interval?: number;
|
|
733
745
|
} | undefined;
|
|
746
|
+
/**
|
|
747
|
+
* Maximum number of concurrent jobs processed by this instance across all registered workers.
|
|
748
|
+
*
|
|
749
|
+
* If reached, the scheduler will stop claiming new jobs until active jobs complete.
|
|
750
|
+
* Use this to prevent a single instance from overwhelming system resources.
|
|
751
|
+
*
|
|
752
|
+
* Note: This is an instance-level limit. Each worker still respects its own `concurrency`
|
|
753
|
+
* setting, but the total across all workers cannot exceed this limit.
|
|
754
|
+
*
|
|
755
|
+
* @example
|
|
756
|
+
* ```typescript
|
|
757
|
+
* const monque = new Monque(db, {
|
|
758
|
+
* instanceConcurrency: 10, // Instance processes max 10 jobs total
|
|
759
|
+
* workerConcurrency: 5, // Each worker defaults to 5 concurrent jobs
|
|
760
|
+
* });
|
|
761
|
+
*
|
|
762
|
+
* // With 3 workers at concurrency 5, normally 15 jobs could run.
|
|
763
|
+
* // With instanceConcurrency: 10, only 10 jobs run at any time.
|
|
764
|
+
* ```
|
|
765
|
+
*/
|
|
766
|
+
instanceConcurrency?: number | undefined;
|
|
767
|
+
/**
|
|
768
|
+
* Maximum number of concurrent jobs processed by this instance across all registered workers.
|
|
769
|
+
*
|
|
770
|
+
* @deprecated Use `instanceConcurrency` instead. Will be removed in a future major version.
|
|
771
|
+
*/
|
|
772
|
+
maxConcurrency?: number | undefined;
|
|
734
773
|
}
|
|
735
774
|
//#endregion
|
|
736
775
|
//#region src/scheduler/monque.d.ts
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/jobs/types.ts","../src/jobs/guards.ts","../src/events/types.ts","../src/workers/types.ts","../src/scheduler/types.ts","../src/scheduler/monque.ts","../src/shared/errors.ts","../src/shared/utils/backoff.ts","../src/shared/utils/cron.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/jobs/types.ts","../src/jobs/guards.ts","../src/events/types.ts","../src/workers/types.ts","../src/scheduler/types.ts","../src/scheduler/monque.ts","../src/shared/errors.ts","../src/shared/utils/backoff.ts","../src/shared/utils/cron.ts"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -1114,27 +1114,57 @@ var JobProcessor = class {
|
|
|
1114
1114
|
this.ctx = ctx;
|
|
1115
1115
|
}
|
|
1116
1116
|
/**
|
|
1117
|
+
* Get the total number of active jobs across all workers.
|
|
1118
|
+
*
|
|
1119
|
+
* Used for instance-level throttling when `instanceConcurrency` is configured.
|
|
1120
|
+
*/
|
|
1121
|
+
getTotalActiveJobs() {
|
|
1122
|
+
let total = 0;
|
|
1123
|
+
for (const worker of this.ctx.workers.values()) total += worker.activeJobs.size;
|
|
1124
|
+
return total;
|
|
1125
|
+
}
|
|
1126
|
+
/**
|
|
1127
|
+
* Get the number of available slots considering the global instanceConcurrency limit.
|
|
1128
|
+
*
|
|
1129
|
+
* @param workerAvailableSlots - Available slots for the specific worker
|
|
1130
|
+
* @returns Number of slots available after applying global limit
|
|
1131
|
+
*/
|
|
1132
|
+
getGloballyAvailableSlots(workerAvailableSlots) {
|
|
1133
|
+
const { instanceConcurrency } = this.ctx.options;
|
|
1134
|
+
if (instanceConcurrency === void 0) return workerAvailableSlots;
|
|
1135
|
+
const globalAvailable = instanceConcurrency - this.getTotalActiveJobs();
|
|
1136
|
+
return Math.min(workerAvailableSlots, globalAvailable);
|
|
1137
|
+
}
|
|
1138
|
+
/**
|
|
1117
1139
|
* Poll for available jobs and process them.
|
|
1118
1140
|
*
|
|
1119
1141
|
* Called at regular intervals (configured by `pollInterval`). For each registered worker,
|
|
1120
1142
|
* attempts to acquire jobs up to the worker's available concurrency slots.
|
|
1121
|
-
* Aborts early if the scheduler is stopping (`isRunning` is false)
|
|
1143
|
+
* Aborts early if the scheduler is stopping (`isRunning` is false) or if
|
|
1144
|
+
* the instance-level `instanceConcurrency` limit is reached.
|
|
1122
1145
|
*/
|
|
1123
1146
|
async poll() {
|
|
1124
1147
|
if (!this.ctx.isRunning()) return;
|
|
1148
|
+
const { instanceConcurrency } = this.ctx.options;
|
|
1149
|
+
if (instanceConcurrency !== void 0 && this.getTotalActiveJobs() >= instanceConcurrency) return;
|
|
1125
1150
|
for (const [name, worker] of this.ctx.workers) {
|
|
1126
|
-
const
|
|
1127
|
-
if (
|
|
1151
|
+
const workerAvailableSlots = worker.concurrency - worker.activeJobs.size;
|
|
1152
|
+
if (workerAvailableSlots <= 0) continue;
|
|
1153
|
+
const availableSlots = this.getGloballyAvailableSlots(workerAvailableSlots);
|
|
1154
|
+
if (availableSlots <= 0) return;
|
|
1128
1155
|
for (let i = 0; i < availableSlots; i++) {
|
|
1129
1156
|
if (!this.ctx.isRunning()) return;
|
|
1157
|
+
if (instanceConcurrency !== void 0 && this.getTotalActiveJobs() >= instanceConcurrency) return;
|
|
1130
1158
|
const job = await this.acquireJob(name);
|
|
1131
|
-
if (job)
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
job
|
|
1159
|
+
if (job) {
|
|
1160
|
+
worker.activeJobs.set(job._id.toString(), job);
|
|
1161
|
+
this.processJob(job, worker).catch((error) => {
|
|
1162
|
+
this.ctx.emit("job:error", {
|
|
1163
|
+
error,
|
|
1164
|
+
job
|
|
1165
|
+
});
|
|
1135
1166
|
});
|
|
1136
|
-
}
|
|
1137
|
-
else break;
|
|
1167
|
+
} else break;
|
|
1138
1168
|
}
|
|
1139
1169
|
}
|
|
1140
1170
|
}
|
|
@@ -1187,7 +1217,6 @@ var JobProcessor = class {
|
|
|
1187
1217
|
*/
|
|
1188
1218
|
async processJob(job, worker) {
|
|
1189
1219
|
const jobId = job._id.toString();
|
|
1190
|
-
worker.activeJobs.set(jobId, job);
|
|
1191
1220
|
const startTime = Date.now();
|
|
1192
1221
|
this.ctx.emit("job:start", job);
|
|
1193
1222
|
try {
|
|
@@ -1817,7 +1846,7 @@ const DEFAULTS = {
|
|
|
1817
1846
|
maxRetries: 10,
|
|
1818
1847
|
baseRetryInterval: 1e3,
|
|
1819
1848
|
shutdownTimeout: 3e4,
|
|
1820
|
-
|
|
1849
|
+
workerConcurrency: 5,
|
|
1821
1850
|
lockTimeout: 18e5,
|
|
1822
1851
|
recoverStaleJobs: true,
|
|
1823
1852
|
heartbeatInterval: 3e4,
|
|
@@ -1911,10 +1940,11 @@ var Monque = class extends EventEmitter {
|
|
|
1911
1940
|
maxRetries: options.maxRetries ?? DEFAULTS.maxRetries,
|
|
1912
1941
|
baseRetryInterval: options.baseRetryInterval ?? DEFAULTS.baseRetryInterval,
|
|
1913
1942
|
shutdownTimeout: options.shutdownTimeout ?? DEFAULTS.shutdownTimeout,
|
|
1914
|
-
|
|
1943
|
+
workerConcurrency: options.workerConcurrency ?? options.defaultConcurrency ?? DEFAULTS.workerConcurrency,
|
|
1915
1944
|
lockTimeout: options.lockTimeout ?? DEFAULTS.lockTimeout,
|
|
1916
1945
|
recoverStaleJobs: options.recoverStaleJobs ?? DEFAULTS.recoverStaleJobs,
|
|
1917
1946
|
maxBackoffDelay: options.maxBackoffDelay,
|
|
1947
|
+
instanceConcurrency: options.instanceConcurrency ?? options.maxConcurrency,
|
|
1918
1948
|
schedulerInstanceId: options.schedulerInstanceId ?? randomUUID(),
|
|
1919
1949
|
heartbeatInterval: options.heartbeatInterval ?? DEFAULTS.heartbeatInterval,
|
|
1920
1950
|
jobRetention: options.jobRetention
|
|
@@ -2577,7 +2607,7 @@ var Monque = class extends EventEmitter {
|
|
|
2577
2607
|
* ```
|
|
2578
2608
|
*/
|
|
2579
2609
|
register(name, handler, options = {}) {
|
|
2580
|
-
const concurrency = options.concurrency ?? this.options.
|
|
2610
|
+
const concurrency = options.concurrency ?? this.options.workerConcurrency;
|
|
2581
2611
|
if (this.workers.has(name) && options.replace !== true) throw new WorkerRegistrationError(`Worker already registered for job name "${name}". Use { replace: true } to replace.`, name);
|
|
2582
2612
|
this.workers.set(name, {
|
|
2583
2613
|
handler,
|