forked from SysSn13/leetcode-rating-predictor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbackground.js
40 lines (32 loc) · 1.19 KB
/
background.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
const predictQueue = require("./services/job-queues/contestPredictionQueue");
const jobScheduler = require("./services/job-queues/jobScheduler");
const { createBullBoard } = require("@bull-board/api");
const { BullAdapter } = require("@bull-board/api/bullAdapter");
const { ExpressAdapter } = require("@bull-board/express");
const serverAdapter = new ExpressAdapter();
const bullBoard = createBullBoard({
queues: [new BullAdapter(predictQueue), new BullAdapter(jobScheduler)],
serverAdapter: serverAdapter,
});
serverAdapter.setBasePath("/bull-board");
const initScheduler = async () => {
await jobScheduler.add("contestScheduler", {});
await jobScheduler.add("updateUserDataScheduler", {
rateLimit: 3,
limit: 1000,
});
// repeat contestScheduler every day at midnight
await jobScheduler.add(
"contestScheduler",
{},
{ repeat: { cron: "0 0 * * *" } }
);
// Repeat updateUserDataScheduler every 4 hours
await jobScheduler.add(
"updateUserDataScheduler",
{ rateLimit: 3, limit: 1000 },
{ repeat: { cron: "0 */4 * * *" } }
);
};
initScheduler();
module.exports.bullBoardServerAdapter = serverAdapter;