Refactor payment job handling to simplify retry logic and update job parameters

This commit is contained in:
Jose Eduardo 2025-08-11 23:52:50 -04:00
parent 717046120c
commit b2273181b9

View File

@ -5,9 +5,8 @@ import { CreatePaymentDto } from '../payments/dto/create-payment.dto';
import { PAYMENT_QUEUE } from './constants/queue.constants'; import { PAYMENT_QUEUE } from './constants/queue.constants';
export interface PaymentJobData { export interface PaymentJobData {
paymentId: string;
paymentData: CreatePaymentDto; paymentData: CreatePaymentDto;
retryCount?: number; createdAt: Date;
} }
@Injectable() @Injectable()
@ -16,29 +15,13 @@ export class QueueService {
async addPaymentJob(data: PaymentJobData): Promise<void> { async addPaymentJob(data: PaymentJobData): Promise<void> {
await this.paymentQueue.add(PAYMENT_QUEUE, data, { await this.paymentQueue.add(PAYMENT_QUEUE, data, {
attempts: 3, attempts: 2,
backoff: { backoff: {
type: 'exponential', type: 'exponential',
delay: 2000, delay: 2000,
}, },
removeOnComplete: 10, removeOnComplete: 3,
removeOnFail: 5, removeOnFail: 2,
});
}
async addRetryPaymentJob(
data: PaymentJobData,
delay: number = 5000,
): Promise<void> {
await this.paymentQueue.add('process-payment', data, {
delay,
attempts: 2,
backoff: {
type: 'exponential',
delay: 3000,
},
removeOnComplete: 10,
removeOnFail: 5,
}); });
} }
} }