-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathqueue.js
More file actions
16 lines (12 loc) · 763 Bytes
/
Copy pathqueue.js
File metadata and controls
16 lines (12 loc) · 763 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Redis connection + BullMQ queues (main + dead-letter) and the idempotency-key helper.
// Importing this module opens a Redis connection, so keep it out of unit tests.
const { Queue } = require('bullmq');
const IORedis = require('ioredis');
const { cfg, QUEUE_NAME, DLQ_NAME } = require('./config');
// BullMQ requires maxRetriesPerRequest: null on its connection.
const connection = new IORedis(cfg.redisUrl, { maxRetriesPerRequest: null });
const reviewQueue = new Queue(QUEUE_NAME, { connection });
const deadQueue = new Queue(DLQ_NAME, { connection });
// Idempotency key: one review per (repo, PR, commit).
const processedKey = (repo, pr, sha) => `processed:${repo}:${pr}:${sha}`;
module.exports = { connection, reviewQueue, deadQueue, processedKey };