feat: Implement process worker with bullmq
This commit is contained in:

committed by
Ömer Faruk Aydın

parent
b288dc8c35
commit
20e725b590
31
packages/backend/src/workers/processor.ts
Normal file
31
packages/backend/src/workers/processor.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import { Worker } from 'bullmq';
|
||||
import Processor from '../services/processor';
|
||||
import redisConfig from '../config/redis';
|
||||
import Step from '../models/step';
|
||||
import logger from '../helpers/logger';
|
||||
|
||||
const worker = new Worker(
|
||||
'processor',
|
||||
async (job) => {
|
||||
const step = await Step.query()
|
||||
.withGraphFetched('connection')
|
||||
.findOne({
|
||||
'steps.id': job.data.stepId,
|
||||
})
|
||||
.throwIfNotFound();
|
||||
|
||||
const flow = await step.$relatedQuery('flow');
|
||||
|
||||
const data = await new Processor(flow, step).run();
|
||||
return data;
|
||||
},
|
||||
{ connection: redisConfig }
|
||||
);
|
||||
|
||||
worker.on('completed', (job) => {
|
||||
logger.info(`${job.id} has completed!`);
|
||||
});
|
||||
|
||||
worker.on('failed', (job, err) => {
|
||||
logger.info(`${job.id} has failed with ${err.message}`);
|
||||
});
|
Reference in New Issue
Block a user