Skip to main content

Integración asincrónica 

Pega Platform™ proporciona varios mecanismos para realizar el procesamiento de forma asincrónica. Por ejemplo, una aplicación puede iniciar una llamada a un sistema de Back-End y continuar el procesamiento sin bloquear ni esperar la respuesta del sistema externo. Este enfoque es útil en los siguientes casos:

  • Cuando el tiempo de procesamiento del sistema externo puede ser un problema
  • Cuando no se requiere de inmediato el resultado del procesamiento

También está disponible una función similar para los servicios que le permite colocar en cola una solicitud entrante (por ejemplo, la regla Service-REST/Service-File).

  • Si el modo de ejecución se configura como sincrónico (inmediato), la solicitud se gestiona y procesa de inmediato en el contexto del solicitante único. 
  • Si el modo de ejecución se configura como asincrónico (cola para la ejecución), la solicitud se distribuye a la cola y se procesa después.

Enfoques frecuentes para la integración asincrónica

Entre los enfoques asincrónicos frecuentes, se incluyen los siguientes:

  • El método Load-DataPage
  • La opción Run-In-Parallel con el método Connect-Wait

Load-DataPage

Las páginas de datos se cargan sincrónicamente de forma predeterminada. A fin de cargar las páginas de datos asincrónicamente para que los usuarios puedan actuar sobre un objeto de trabajo mientras se carga otro contenido, realice las siguientes acciones:

  • Use el método de paso Load-DataPage en una actividad y espere a que se cargue la página de datos usando el método de paso Connect-Wait.

Una página de datos asincrónica puede ser un patrón de diseño óptimo para cualquier proceso que seleccione las filas filtradas en el mismo conjunto de registros general. La recuperación repetida del mismo conjunto de registros grande es un desperdicio de recursos de procesamiento.

Suponga que se usa un conector de ejecución lenta para obtener una página de datos. En ese caso, la página de datos se puede cargar previamente con el método Load-DataPage en una actividad para garantizar la disponibilidad de los datos sin demora cuando sea necesario. Es posible agrupar varios solicitantes de Load-DataPage especificando un PoolID. Use el método Connect-Wait para esperar un intervalo especificado o hasta que todos los solicitantes con el mismo PoolID hayan terminado de cargar los datos.

Varias alertas identifican el procesamiento de la página de datos asincrónico que podría ser ineficiente, de modo que detecte el código modificable para mejorar el rendimiento.

Nota: Las páginas de datos que se cargan de forma asincrónica no pueden ejecutar los disparadores y expresiones declarativos, y otras reglas pertenecientes a una red declarativa.

Ejecución de un conector en segundo plano usando Run-In-Parallel y Connect-Wait

La mayoría de las reglas de conectores pueden ejecutarse en paralelo invocando los conectores en una actividad con los métodos Connect-*y la opción RunInParallel seleccionada. Cuando se selecciona la opción run-in-parallel, se ejecuta un conector como subsolicitante. La actividad de llamada continúa la ejecución de los pasos posteriores. Use el método Connect-Wait para unir la sesión del solicitante actual con las sesiones del subsolicitante.

Nota: Si configura varios conectores para que se ejecuten en paralelo, asegúrese de que los datos de respuesta se asignen a páginas de portapapeles independientes y de que se configure la gestión de errores.

Enfoques menos frecuentes de la integración asincrónica

Entre los enfoques menos frecuentes de la integración asincrónica, se incluyen los siguientes:

  • El procesamiento de servicios asincrónico
  • El procesamiento de conectores asincrónico

El procesamiento de servicios asincrónico

La mayoría de los tipos de servicios admiten el procesamiento asincrónico. Los servicios de correo electrónico y JSR94 son excepciones. Los tipos de servicios que admiten el procesamiento asincrónico aprovechan la cola de agentes estándar. Estas reglas de servicios se pueden configurar para ejecutarse o bien realizar la solicitud de forma asincrónica después de un intento inicial erróneo de invocar el servicio de forma sincrónica. En ambos casos, se devuelve un ID del elemento de cola que identifica la solicitud en cola a la aplicación de llamada. Este ID de elemento corresponde al elemento en cola que registra la información y el estado de la solicitud en cola. Una vez que la solicitud de servicio se coloca en cola, el agente ProcessServiceQueue del ruleset Pega-IntSvcs procesa el elemento que está en la cola e invoca el servicio. Los resultados de la solicitud de servicio se almacenan en la instancia, y dicha solicitud se conserva en la cola hasta que se recuperen los resultados.

Mientras tanto, la aplicación de llamada que inició la solicitud de servicio almacena el ID del elemento de cola y continúa su ejecución. En la mayoría de los casos, la aplicación de llamada vuelve a llamar más tarde con el ID del elemento de cola para recuperar los resultados de la solicitud de servicio. El servicio usa la actividad estándar @baseclass.GetExecutionRequest como actividad de servicio para recuperar el servicio en cola.

Cuando se configura esta opción para el servicio, debe crearse un procesador de solicitud de servicio que defina las opciones de poner en cola y retirar de la cola. El agente ProcessServiceQueue usa esta información para la información de respaldo en la realización de las tareas.

El procesamiento de conectores asincrónico

Varias reglas de conectores ofrecen un modo de ejecución asincrónico mediante la funcionalidad de la cola, de modo similar a los servicios asincrónicos. Cuando aprovecha esta capacidad, la solicitud de conector se almacena en un elemento en cola para que el agente ProcessConnectQueue en el ruleset Pega-IntSvcs haga la llamada al servicio más tarde. El conector en cola opera en un estilo “dispare y olvide”. Es decir que no hay una respuesta del conector disponible inmediatamente. Antes de elegir usar este mecanismo de procesamiento asincrónico, evalúe si el estilo “dispare y olvide” se adecua a sus requerimientos.

También debe configurarse un procesador de solicitud de conector para el modo de operación asincrónico. Esta configuración es similar a la de un servicio asincrónico. La diferencia es la clase del objeto en cola.


This Topic is available in the following Module:

If you are having problems with your training, please review the Pega Academy Support FAQs.

¿Le ha resultado útil este contenido?

El 67% ha encontrado útil este contenido.

¿Quiere ayudarnos a mejorar este contenido?

We'd prefer it if you saw us at our best.

Pega Academy has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice