refactor: Worker structure to work with jobs

This commit is contained in:
Faruk AYDIN
2024-12-19 13:26:49 +01:00
parent bc6314ac7e
commit c7072a29bb
7 changed files with 47 additions and 390 deletions

View File

@@ -1,44 +1,9 @@
import { Worker } from 'bullmq';
import { DateTime } from 'luxon';
import * as Sentry from '../helpers/sentry.ee.js';
import redisConfig from '../config/redis.js';
import logger from '../helpers/logger.js';
import Subscription from '../models/subscription.ee.js';
import { generateWorker } from './worker.js';
import { removeCancelledSubscriptionsJob } from '../jobs/remove-cancelled-subscriptions.ee.js';
const removeCancelledSubscriptionsWorker = new Worker(
const removeCancelledSubscriptionsWorker = generateWorker(
'remove-cancelled-subscriptions',
async () => {
await Subscription.query()
.delete()
.where({
status: 'deleted',
})
.andWhere(
'cancellation_effective_date',
'<=',
DateTime.now().startOf('day').toISODate()
);
},
{ connection: redisConfig }
removeCancelledSubscriptionsJob
);
removeCancelledSubscriptionsWorker.on('completed', (job) => {
logger.info(
`JOB ID: ${job.id} - The cancelled subscriptions have been removed!`
);
});
removeCancelledSubscriptionsWorker.on('failed', (job, err) => {
const errorMessage = `
JOB ID: ${job.id} - ERROR: The cancelled subscriptions can not be removed! ${err.message}
\n ${err.stack}
`;
logger.error(errorMessage);
Sentry.captureException(err, {
extra: {
jobId: job.id,
},
});
});
export default removeCancelledSubscriptionsWorker;