Skip to content

Commit

Permalink
feat: manejo de errores en sync de Orden de Compra (#307)
Browse files Browse the repository at this point in the history
Se implementa manejo de errores en el proceso de sincronización de pagos
de órdenes de compra.
Ahora, si una orden de compra específica falla durante la
sincronización, el proceso continuará con las demás órdenes sin
interrumpirse.

## Cambios Realizados
- Se agregó un bloque try-catch alrededor de la sincronización
individual de cada orden de compra
- Se implementó un registro de errores detallado cuando falla la
sincronización de una orden
- Se asegura la continuidad del proceso incluso cuando una orden
específica falla

## Motivación
Anteriormente, si una orden de compra fallaba durante la sincronización,
todo el proceso se detenía. Este cambio mejora la resiliencia del
sistema permitiendo que el proceso continúe con las demás órdenes
incluso si una falla.

## Impacto
- Mayor robustez en el proceso de sincronización
- Mejor visibilidad de errores específicos por orden de compra
- Reducción de interrupciones en el proceso de sincronización
  • Loading branch information
TextC0de authored Nov 4, 2024
1 parent f1922e8 commit feebee8
Showing 1 changed file with 20 additions and 9 deletions.
29 changes: 20 additions & 9 deletions workers/purchase_order_payment_sync_cron/scheduled.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -64,16 +64,27 @@ export const scheduled: ExportedHandlerScheduledHandler<ENV> = async (
`Syncing purchase order payment status for ${purchaseOrder.id}`,
);

await syncPurchaseOrderPaymentStatus({
purchaseOrderId: purchaseOrder.id,
DB,
GET_STRIPE_CLIENT,
GET_MERCADOPAGO_CLIENT,
logger,
transactionalEmailService: env.RPC_SERVICE_EMAIL,
});
try {
await syncPurchaseOrderPaymentStatus({
purchaseOrderId: purchaseOrder.id,
DB,
GET_STRIPE_CLIENT,
GET_MERCADOPAGO_CLIENT,
logger,
transactionalEmailService: env.RPC_SERVICE_EMAIL,
});

logger.info(`Synced purchase order payment status for ${purchaseOrder.id}`);
logger.info(
`Synced purchase order payment status for ${purchaseOrder.id}`,
);
} catch (error) {
logger.error(
`Error syncing purchase order payment status for ${purchaseOrder.id}`,
{
error,
},
);
}
}

const clearedOders = await clearExpiredPurchaseOrders({ DB });
Expand Down

0 comments on commit feebee8

Please sign in to comment.