Error Extension Puntos

Extensiones de Error de Flujo

Las extensiones de error de flujo permiten la customisation de lo que debe suceder si ocurre un error inesperado durante el procesamiento del flujo. Proporcionan un gancho para manejar la excepción lanzada y ofrecen al desarrollador la opción de implementar una rutina de manejo.

Las extensiones de error se proporcionan al implementar el 'FlowErrorExtensions’interfaz, y luego suministrando eso a su dominio a través del proveedor de extensiones. Por favor, consulte la’agregar extensiones sección para más detalles.

La funcionalidad disponible en la interfaz de extensiones de error es:

MethodName Descripción Funcionalidad Predeterminada

shouldRaiseEventOnError

Especifica si el flujo debe generar un evento especial de 'Error Inesperado' cuando ocurre un error inesperado durante el procesamiento y luego utilizar ese evento para transitar al estado especial de 'En Error'. Cuando un flujo alcanza el estado de 'En Error', puede ser trasladado proporcionando la funcionalidad de reanudar, abortar o completar forzosamente disponible en el dominio del modelo.

Apagado, no se generaron eventos.

mango

Permite la implementación de cualquier custom manejo de errores de flujo que desea proporcionar. Un caso de uso común para esta funcionalidad sería si estuviera integrando su flujo con el IPF Human Task Manager(HTM). Por ejemplo, si ocurre un error inesperado durante el procesamiento, usted puede definir un custom manejador de errores para transitar el flujo al estado de error y generar un HTM tarea. Desde aquí, el operador tendría la capacidad de reintentar la transacción o de abortar/forzar la finalización de la transacción. Más detalles sobre esta implementación se pueden encontrar aquí.

Sin manejo adicional.

Las extensiones de error predeterminadas son proporcionadas por el 'DefaultFlowErrorHandler' implementación.

Reintentos

Por defecto, las extensiones de error permitirán un número infinito de reintentos. Esto significa que, si ocurre un error y luego se reanuda el flujo (por ejemplo, a través de un HTM acción de recuperación) y la falla permanecen sin corregir, entonces el procesamiento de la falla volverá a ocurrir y se repetirá cualquier manejo apropiado. Sin embargo, puede ser que en algunas circunstancias necesite detener el procesamiento para que no se repita de esta manera. Para esto, podemos agregar el elemento de configuración " errorRetries ". Esto especificará el número máximo de reintentos que desea realizar hasta que se aborte el pago."

Para establecer el límite de reintentos, simplemente añada el número máximo de reintentos durante la construcción del dominio:

new ErrorHandlingDomain. Builder(actorSystem) .withConfigSettings(ConfigSettings.builder().errorRetries(3).build()) .build();

La configuración anterior garantizará que si ocurren 3 fallos, el error será dirigido al estado abortado.

Esta configuración también puede aplicarse utilizando la propiedad 'ipf.behaviour.config.error-retries'.

Event Extensiones de Error

EventLas extensiones de error se invocan cuando ocurre un error inesperado durante el procesamiento de un evento. El caso de uso principal para esto es capturar errores que ocurren durante la invocación de un agregado.mapping y particularmente para prevenir fallos durante escenarios de recuperación.

Similar a las extensiones de error de flujo, las extensiones de error de evento se proporcionan al implementar el 'EventErrorExtensions’interfaz, y luego suministrarlo a su dominio a través del proveedor de extensiones. El comportamiento predeterminado es simplemente mover el registro al estado de "En Error" y luego desactivar el flujo (esto evita que se intente de manera infinita por la recuperación). Opcionalmente, usted puede implementar el 'EventErrorExtensions método handle para proporcionar funcionalidad adicional. Una opción aquí sería utilizar el HTM extensiones para enviar estos registros a HTM para análisis manual.