Flujos de trabajo secundarios - Amazon Simple Workflow Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Flujos de trabajo secundarios

Los flujos de trabajo complejos pueden descomponerse en componentes más pequeños, más gestionables y potencialmente reutilizables mediante flujos de trabajo secundarios. Un flujo de trabajo secundario es una ejecución de flujo de trabajo iniciada por otra ejecución de flujo de trabajo (principal). Para iniciar un flujo de trabajo secundario, el decisor del flujo de trabajo principal usa la decisión StartChildWorkflowExecution. Los datos de entrada especificados con esta decisión están disponibles para el flujo de trabajo secundario a través de su historial.

Los atributos para la decisión StartChildWorkflowExecution también especifican la política secundaria, es decir, de qué forma debería Amazon SWF controlar la situación en la que la ejecución del flujo de trabajo principal termina antes de la ejecución del flujo de trabajo secundario. Hay tres valores posibles:

  • TERMINATE: Amazon SWF terminará las ejecuciones secundarias.

  • REQUEST_CANCEL: Amazon SWF intentará cancelar la ejecución secundaria situando un evento WorkflowExecutionCancelRequested en el historial de ejecución del flujo de trabajo de la ejecución secundaria.

  • ABANDON: Amazon SWF no realizará ninguna acción; las ejecuciones secundarias continuarán ejecutándose.

Tras iniciarse la ejecución de flujo de trabajo secundario, se ejecuta con normalidad. Al completarse, Amazon SWF registra la finalización, junto con sus resultados, en el historial del flujo de trabajo de la ejecución de flujo de trabajo principal. Entre los ejemplos de flujos de trabajo secundarios, se incluyen los siguientes:

  • Flujo de trabajo secundario de procesamiento de tarjeta de crédito usado por flujos de trabajo en diversos sitios web

  • Flujo de trabajo secundario de correo electrónico que verifica la dirección de correo electrónico del cliente, comprueba la lista de cancelación, envía el correo electrónico y verifica que no rebotó ni produjo ningún error.

  • Flujo de trabajo de recuperación y almacenamiento de base de datos que combina conexión, configuración, transacción y verificación.

  • Flujo de trabajo secundario que combina compilación, embalaje y verificación.

En el ejemplo de E-Commerce, es posible que desee hacer de la actividad de cobro a la tarjeta de crédito un flujo de trabajo secundario. Para ello, podría registrar un nuevo flujo de trabajo de verificación del cliente, registrar la dirección de verificación del cliente y comprobar actividades de base de datos de fraude, y definir la lógica de coordinación para las tareas. A continuación, un decisor del flujo de trabajo del pedido de un cliente puede iniciar un flujo de trabajo secundario de verificación del cliente programando la decisión StartChildWorkflowExecution que especifica este tipo de flujo de trabajo.

En el siguiente gráfico se muestra un flujo de trabajo del pedido de un cliente que incluye un nuevo flujo de trabajo secundario de verificación del cliente, que comprueba la dirección del cliente y la base de datos de fraudes, y cobra de la tarjeta de crédito.

Diagrama del flujo de trabajo secundario

Varios flujos de trabajo podrían crear ejecuciones de flujo de trabajo mediante el mismo tipo de flujo de trabajo. Por ejemplo, el flujo de trabajo secundario de verificación del cliente también podría usarse en otras partes de una organización. Los eventos de un flujo de trabajo secundario se incluyen en su propio historial del flujo de trabajo y no se incluyen en el historial del flujo de trabajo del elemento principal.

Como los flujos de trabajo secundarios no son más que ejecuciones de flujo de trabajo iniciadas por un decisor, también podrían iniciarse como ejecuciones de flujos de trabajo independientes normales.