refactor: Extract processor job into separate background jobs
This commit is contained in:
25
packages/backend/src/queues/action.ts
Normal file
25
packages/backend/src/queues/action.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import process from 'process';
|
||||
import { Queue } from 'bullmq';
|
||||
import redisConfig from '../config/redis';
|
||||
import logger from '../helpers/logger';
|
||||
|
||||
const CONNECTION_REFUSED = 'ECONNREFUSED';
|
||||
|
||||
const redisConnection = {
|
||||
connection: redisConfig,
|
||||
};
|
||||
|
||||
const actionQueue = new Queue('action', redisConnection);
|
||||
|
||||
process.on('SIGTERM', async () => {
|
||||
await actionQueue.close();
|
||||
});
|
||||
|
||||
actionQueue.on('error', (err) => {
|
||||
if ((err as any).code === CONNECTION_REFUSED) {
|
||||
logger.error('Make sure you have installed Redis and it is running.', err);
|
||||
process.exit();
|
||||
}
|
||||
});
|
||||
|
||||
export default actionQueue;
|
@@ -9,18 +9,18 @@ const redisConnection = {
|
||||
connection: redisConfig,
|
||||
};
|
||||
|
||||
const processorQueue = new Queue('processor', redisConnection);
|
||||
const queueScheduler = new QueueScheduler('processor', redisConnection);
|
||||
const flowQueue = new Queue('flow', redisConnection);
|
||||
const queueScheduler = new QueueScheduler('flow', redisConnection);
|
||||
|
||||
process.on('SIGTERM', async () => {
|
||||
await queueScheduler.close();
|
||||
});
|
||||
|
||||
processorQueue.on('error', (err) => {
|
||||
flowQueue.on('error', (err) => {
|
||||
if ((err as any).code === CONNECTION_REFUSED) {
|
||||
logger.error('Make sure you have installed Redis and it is running.', err);
|
||||
process.exit();
|
||||
}
|
||||
});
|
||||
|
||||
export default processorQueue;
|
||||
export default flowQueue;
|
25
packages/backend/src/queues/trigger.ts
Normal file
25
packages/backend/src/queues/trigger.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import process from 'process';
|
||||
import { Queue } from 'bullmq';
|
||||
import redisConfig from '../config/redis';
|
||||
import logger from '../helpers/logger';
|
||||
|
||||
const CONNECTION_REFUSED = 'ECONNREFUSED';
|
||||
|
||||
const redisConnection = {
|
||||
connection: redisConfig,
|
||||
};
|
||||
|
||||
const triggerQueue = new Queue('trigger', redisConnection);
|
||||
|
||||
process.on('SIGTERM', async () => {
|
||||
await triggerQueue.close();
|
||||
});
|
||||
|
||||
triggerQueue.on('error', (err) => {
|
||||
if ((err as any).code === CONNECTION_REFUSED) {
|
||||
logger.error('Make sure you have installed Redis and it is running.', err);
|
||||
process.exit();
|
||||
}
|
||||
});
|
||||
|
||||
export default triggerQueue;
|
Reference in New Issue
Block a user