@oneuptime/common 7.0.4917 → 7.0.4922
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.
|
@@ -27,6 +27,8 @@ export type QueueJob = Job;
|
|
|
27
27
|
|
|
28
28
|
export default class Queue {
|
|
29
29
|
private static queueDict: Dictionary<BullQueue> = {};
|
|
30
|
+
// track queues we have already run initial cleanup on
|
|
31
|
+
private static cleanedQueueNames: Set<string> = new Set<string>();
|
|
30
32
|
|
|
31
33
|
@CaptureSpan()
|
|
32
34
|
public static getQueue(queueName: QueueName): BullQueue {
|
|
@@ -41,11 +43,37 @@ export default class Queue {
|
|
|
41
43
|
port: RedisPort.toNumber(),
|
|
42
44
|
password: RedisPassword,
|
|
43
45
|
},
|
|
46
|
+
// Keep BullMQ data under control to avoid Redis bloat
|
|
47
|
+
defaultJobOptions: {
|
|
48
|
+
// keep only recent completed/failed jobs
|
|
49
|
+
removeOnComplete: { count: 500 }, // keep last 1000 completed jobs
|
|
50
|
+
removeOnFail: { count: 100 }, // keep last 500 failed jobs
|
|
51
|
+
},
|
|
52
|
+
// Optionally cap the event stream length (supported in BullMQ >= v5)
|
|
53
|
+
// This helps prevent the :events stream from growing indefinitely
|
|
54
|
+
streams: {
|
|
55
|
+
events: { maxLen: 1000 },
|
|
56
|
+
},
|
|
44
57
|
});
|
|
45
58
|
|
|
46
59
|
// save it to the dictionary
|
|
47
60
|
this.queueDict[queueName] = queue;
|
|
48
61
|
|
|
62
|
+
// Fire-and-forget initial cleanup for legacy/old data if not done before
|
|
63
|
+
if (!this.cleanedQueueNames.has(queueName)) {
|
|
64
|
+
this.cleanedQueueNames.add(queueName);
|
|
65
|
+
// Clean jobs older than 1 days to reclaim memory from historic runs
|
|
66
|
+
const oneDaysMs: number = 1 * 24 * 60 * 60 * 1000;
|
|
67
|
+
void (async () => {
|
|
68
|
+
try {
|
|
69
|
+
await queue.clean(oneDaysMs, 1000, "completed");
|
|
70
|
+
await queue.clean(oneDaysMs, 1000, "failed");
|
|
71
|
+
} catch {
|
|
72
|
+
// ignore cleanup errors to not impact normal flow
|
|
73
|
+
}
|
|
74
|
+
})();
|
|
75
|
+
}
|
|
76
|
+
|
|
49
77
|
return queue;
|
|
50
78
|
}
|
|
51
79
|
|
|
@@ -35,9 +35,35 @@ class Queue {
|
|
|
35
35
|
port: RedisPort.toNumber(),
|
|
36
36
|
password: RedisPassword,
|
|
37
37
|
},
|
|
38
|
+
// Keep BullMQ data under control to avoid Redis bloat
|
|
39
|
+
defaultJobOptions: {
|
|
40
|
+
// keep only recent completed/failed jobs
|
|
41
|
+
removeOnComplete: { count: 500 }, // keep last 1000 completed jobs
|
|
42
|
+
removeOnFail: { count: 100 }, // keep last 500 failed jobs
|
|
43
|
+
},
|
|
44
|
+
// Optionally cap the event stream length (supported in BullMQ >= v5)
|
|
45
|
+
// This helps prevent the :events stream from growing indefinitely
|
|
46
|
+
streams: {
|
|
47
|
+
events: { maxLen: 1000 },
|
|
48
|
+
},
|
|
38
49
|
});
|
|
39
50
|
// save it to the dictionary
|
|
40
51
|
this.queueDict[queueName] = queue;
|
|
52
|
+
// Fire-and-forget initial cleanup for legacy/old data if not done before
|
|
53
|
+
if (!this.cleanedQueueNames.has(queueName)) {
|
|
54
|
+
this.cleanedQueueNames.add(queueName);
|
|
55
|
+
// Clean jobs older than 1 days to reclaim memory from historic runs
|
|
56
|
+
const oneDaysMs = 1 * 24 * 60 * 60 * 1000;
|
|
57
|
+
void (async () => {
|
|
58
|
+
try {
|
|
59
|
+
await queue.clean(oneDaysMs, 1000, "completed");
|
|
60
|
+
await queue.clean(oneDaysMs, 1000, "failed");
|
|
61
|
+
}
|
|
62
|
+
catch (_a) {
|
|
63
|
+
// ignore cleanup errors to not impact normal flow
|
|
64
|
+
}
|
|
65
|
+
})();
|
|
66
|
+
}
|
|
41
67
|
return queue;
|
|
42
68
|
}
|
|
43
69
|
static async removeJob(queueName, jobId) {
|
|
@@ -137,6 +163,8 @@ class Queue {
|
|
|
137
163
|
}
|
|
138
164
|
}
|
|
139
165
|
Queue.queueDict = {};
|
|
166
|
+
// track queues we have already run initial cleanup on
|
|
167
|
+
Queue.cleanedQueueNames = new Set();
|
|
140
168
|
export default Queue;
|
|
141
169
|
__decorate([
|
|
142
170
|
CaptureSpan(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../../../Server/Infrastructure/Queue.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,UAAU,EACV,aAAa,EACb,aAAa,EACb,SAAS,GACV,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAoB,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,WAAW,MAAM,gCAAgC,CAAC;AAEzD,MAAM,CAAN,IAAY,SAQX;AARD,WAAY,SAAS;IACnB,kCAAqB,CAAA;IACrB,8BAAiB,CAAA;IACjB,oCAAuB,CAAA;IACvB,0CAA6B,CAAA;IAC7B,4DAA+C,CAAA;IAC/C,wDAA2C,CAAA;IAC3C,wCAA2B,CAAA;AAC7B,CAAC,EARW,SAAS,KAAT,SAAS,QAQpB;AAID,MAAqB,KAAK;
|
|
1
|
+
{"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../../../Server/Infrastructure/Queue.ts"],"names":[],"mappings":"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"}
|