Listas de tareas de Amazon SWF - 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.

Listas de tareas de Amazon SWF

Las listas de tareas proporcionan una forma de organizar las diversas tareas asociadas a un flujo de trabajo. Puede considerar las listas de tareas similares a las colas dinámicas. Al programar una tarea en Amazon SWF, se puede especificar una cola (lista de tareas) donde incluirla. De forma similar, al sondear Amazon SWF para detectar alguna tarea, se puede indicar la cola (lista de tareas) de la que se obtendrá la tarea.

Las listas de tareas proporcionan un mecanismo flexible para dirigir tareas a los procesos de trabajo como los requiera su caso de uso. Las listas de tareas son dinámicas en el sentido de que no es necesario registrar una lista de tareas o crearla de forma explícita a través de una acción: basta con programar una tarea para que se cree la lista de tareas si no existe todavía.

Hay listas separadas de tareas de actividad y tareas de decisión. Una tarea siempre se programa solo en una lista de tareas; las tareas no se comparten entre listas. Además, de la misma forma que las actividades y los flujos de trabajo, las listas de tareas se asignan a una región de AWS y a un dominio de Amazon SWF determinados.

Listas de tareas de decisión

Cada ejecución de flujo de trabajo se asocia a una lista de tareas de decisión específica. Al registrar un tipo de flujo de trabajo (acción RegisterWorkflowType), puede especificar una lista de tareas predeterminada para las ejecuciones de ese tipo de flujo de trabajo. Cuando el iniciador del flujo de trabajo inicia la ejecución de flujo de trabajo (acción StartWorkflowExecution), tiene la opción de especificar una lista de tareas diferente para esa ejecución de flujo de trabajo.

Cuando un decisor sondea una nueva tarea de decisión (acción PollForDecisionTask), el decisor especifica una lista de tareas de decisión en la que basarse. Un solo decisor podría atender varias ejecuciones de flujo de trabajo llamando a PollForDecisionTask varias veces, mediante una lista de tareas diferente en cada llamada, donde cada lista de tareas es específica de una ejecución de flujo de trabajo determinada. De forma alternativa, el decisor podría sondear una sola lista de tareas de decisión que proporcione tareas de decisión para varias ejecuciones de flujo de trabajo. También podría disponer de varios decisores que atiendan una sola ejecución de flujo de trabajo sondeando todos ellos la lista de tareas para esa ejecución de flujo de trabajo.

Listas de tareas de actividad

Una sola lista de tareas de actividad puede incluir tareas de diferentes tipos de actividad. Las tareas se programan en el orden en el que aparezcan en la lista de tareas. Amazon SWF devuelve las tareas de la lista ordenadas en la medida de lo posible. En determinadas circunstancias, es posible que las listas no den como resultado la lista en orden.

Al registrar un tipo de actividad (acción RegisterActivityType), puede especificar una lista de tareas predeterminada para ese tipo de actividad. De forma predeterminada, las tareas de actividad de este tipo se programarán en función de la lista de tareas especificada; sin embargo, si el decisor programa una tarea de actividad (decisión ScheduleActivityTask), el decisor podrá especificar de forma opcional una lista de tareas diferente en función de la que se programará la tarea. Si el decisor no especifica una lista de tareas, se usará la lista de tareas predeterminada. Como resultado, puede colocar tareas de actividad en listas de tareas específicas según los atributos de la tarea. Por ejemplo, podría colocar todas las instancias de una tarea de actividad para un tipo de tarjeta de crédito determinado en una lista de tareas en particular.

Direccionamiento de tareas

Cuando un proceso de trabajo de actividad sondea una nueva tarea (acción PollForActivityTask), puede especificar una lista de tareas de actividad en la que basarse. Si es así, el proceso de trabajo de actividad aceptará tareas solo de esa lista. De esta forma, puede garantizar que se asignen determinadas tareas solo a procesos de trabajo de actividad. Por ejemplo, podría crear una lista de tareas que contenga tareas que requieren el uso de un equipo de alto desempeño. Solo los procesos de trabajo de actividad que se ejecutan en el hardware adecuado sondearían esa lista de tareas. Otro ejemplo sería crear una lista de tareas para una región geográfica determinada. Podría entonces garantizar que solo los procesos de trabajo implementados en esa región incluyeran esas tareas. O bien, podría crear una lista de tareas para pedidos de alta prioridad y comprobar siempre esa lista primero.

La asignación de determinadas tareas a procesos de trabajo de actividad en particular de esta forma se llama direccionamiento de tareas. El direccionamiento de tareas es opcional; si no especifica una lista de tareas al programar una actividad, la tarea se coloca automáticamente en la lista de tareas predeterminada.