Skip to content

Commit 666522c

Browse files
committed
added job to log queue lengths
1 parent bb39afa commit 666522c

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

backend/src/jobs/index.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
import updateLeaderboards from "./update-leaderboards";
22
import deleteOldLogs from "./delete-old-logs";
33
import logCollectionSizes from "./log-collection-sizes";
4+
import logQueueSizes from "./log-queue-sizes";
45

5-
export default [updateLeaderboards, deleteOldLogs, logCollectionSizes];
6+
export default [
7+
updateLeaderboards,
8+
deleteOldLogs,
9+
logCollectionSizes,
10+
logQueueSizes,
11+
];
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import { CronJob } from "cron";
2+
import Queues from "../queues/index";
3+
import { setQueueLength } from "../utils/prometheus";
4+
5+
const CRON_SCHEDULE = "0 */5 * * * *";
6+
7+
async function main(): Promise<void> {
8+
Promise.all(
9+
Queues.map(async (queue) => {
10+
const counts = await queue.getJobCounts();
11+
12+
const active = counts.active;
13+
const completed = counts.completed;
14+
const failed = counts.failed;
15+
16+
const waiting = counts.waiting;
17+
const paused = counts.paused;
18+
const delayed = counts.delayed;
19+
const waitingChildren = counts["waiting-children"];
20+
21+
const waitingTotal = waiting + paused + delayed + waitingChildren;
22+
23+
setQueueLength(queue.queueName, "completed", completed);
24+
setQueueLength(queue.queueName, "active", active);
25+
setQueueLength(queue.queueName, "failed", failed);
26+
setQueueLength(queue.queueName, "waiting", waitingTotal);
27+
})
28+
);
29+
}
30+
31+
export default new CronJob(CRON_SCHEDULE, main);

0 commit comments

Comments
 (0)