Establecimiento de prioridad de las tareas - 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.

Establecimiento de prioridad de las tareas

De forma predeterminada, las tareas de una lista de tareas se entregan en función de su hora de llegada: las tareas que se programan primero se suelen ejecutar primero, en la medida de lo posible. Al establecer una prioridad de las tareas opcional, puede dar prioridad a algunas tareas: Amazon SWF intentará realizar las tareas de prioridad más alta de una lista de tareas antes que las de prioridad más baja.

nota

Las tareas que se programan primero suelen ejecutarse primero, pero no está garantizado.

Puede establecer prioridades de las tareas tanto para flujos de trabajo como para actividades. La prioridad de las tareas de un flujo de trabajo no afectará a la prioridad de ninguna tarea de actividad que programe ni tampoco a ningún flujo de trabajo secundario que inicie. La prioridad predeterminada de una actividad o de un flujo de trabajo se establece (la establece el usuario o bien Amazon SWF) durante el registro, y la prioridad de las tareas registrada siempre se utiliza a menos que se anule al programar la actividad o al iniciar una ejecución de flujo de trabajo.

Los valores de prioridad de las tareas pueden ir de "-2147483648" a "2147483647", con números más elevados que indican mayor prioridad. Si no establece la prioridad de las tareas para una actividad o flujo de trabajo, se asignará una prioridad de cero ("0").

Establecimiento de prioridad de las tareas para flujos de trabajo

Puede establecer la prioridad de las tareas para un flujo de trabajo al registrarlo o iniciarlo. La prioridad de las tareas que se establece al registrarse el tipo de flujo de trabajo se usa como valor predeterminado de cualquier ejecución de flujo de trabajo de ese tipo, a menos que se anule al iniciar la ejecución de flujo de trabajo.

Para registrar un tipo de flujo de trabajo con una prioridad de tareas predeterminada, establezca la opción defaultTaskPriority cuando utilice la acción RegisterWorkflowType:

{ "domain": "867530901", "name": "expeditedOrderWorkflow", "version": "1.0", "description": "Expedited customer orders workflow", "defaultTaskStartToCloseTimeout": "600", "defaultExecutionStartToCloseTimeout": "3600", "defaultTaskList": {"name": "mainTaskList"}, "defaultTaskPriority": "10", "defaultChildPolicy": "TERMINATE" }

Puede anular la prioridad de tareas registrada del tipo de flujo de trabajo al iniciar una ejecución de flujo de trabajo con StartWorkflowExecution:

{ "childPolicy": "TERMINATE", "domain": "867530901", "executionStartToCloseTimeout": "1800", "input": "arbitrary-string-that-is-meaningful-to-the-workflow", "tagList": ["music purchase", "digital", "ricoh-the-dog"], "taskList": {"name": "specialTaskList"}, "taskPriority": "-20", "taskStartToCloseTimeout": "600", "workflowId": "20110927-T-1", "workflowType": {"name": "customerOrderWorkflow", "version": "1.0"}, }

También puede anular la prioridad de tareas registrada al iniciar un flujo de trabajo secundario o al continuar un flujo de trabajo como si fuera nuevo; por ejemplo, al responder a una decisión con RespondDecisionTaskCompleted.

Para establecer una prioridad de las tareas del flujo de trabajo secundario, proporcione el valor en startChildWorkflowExecutionDecisionAttributes:

{ "taskToken": "AAAAKgAAAAEAAAAAAAAAA...", "decisions": [ { "decisionType": "StartChildWorkflowExecution", "startChildWorkflowExecutionDecisionAttributes": { "childPolicy": "TERMINATE", "control": "digital music", "executionStartToCloseTimeout": "900", "input": "201412-Smith-011x", "taskList": {"name": "specialTaskList"}, "taskPriority": "5", "taskStartToCloseTimeout": "600", "workflowId": "verification-workflow", "workflowType": { "name": "MyChildWorkflow", "version": "1.0" } } } ] }

Al continuar un flujo de trabajo como nuevo, establezca la prioridad de las tareas en continueAsNewWorkflowExecutionDecisionAttributes:

{ "taskToken": "AAAAKgAAAAEAAAAAAAAAA...", "decisions": [ { "decisionType": "ContinueAsNewWorkflowExecution", "continueAsNewWorkflowExecutionDecisionAttributes": { "childPolicy": "TERMINATE", "executionStartToCloseTimeout": "1800", "input": "5634-0056-4367-0923,12/12,437", "taskList": {"name": "specialTaskList"}, "taskStartToCloseTimeout": "600", "taskPriority": "100", "workflowTypeVersion": "1.0" } } ] }

Establecimiento de prioridad de las tareas para actividades

Puede establecer la prioridad de las tareas para una actividad al registrarla o al programarla. La prioridad de las tareas que se establece al registrar un tipo de actividad se usa como prioridad predeterminada cuando se establece la actividad, a menos que se anule al programar la actividad.

Si desea configurar la prioridad de tareas al registrar un tipo de actividad, establezca la opción defaultTaskPriority cuando utilice la acción RegisterActivityType:

{ "defaultTaskHeartbeatTimeout": "120", "defaultTaskList": {"name": "mainTaskList"}, "defaultTaskPriority": "10", "defaultTaskScheduleToCloseTimeout": "900", "defaultTaskScheduleToStartTimeout": "300", "defaultTaskStartToCloseTimeout": "600", "description": "Verify the customer credit card", "domain": "867530901", "name": "activityVerify", "version": "1.0" }

Para programar una tarea con una prioridad de tareas, use la opción taskPriority al programar la actividad con la acción RespondDecisionTaskCompleted:

{ "taskToken": "AAAAKgAAAAEAAAAAAAAAA...", "decisions": [ { "decisionType": "ScheduleActivityTask", "scheduleActivityTaskDecisionAttributes": { "activityId": "verify-account", "activityType": { "name": "activityVerify", "version": "1.0" }, "control": "digital music", "input": "abab-101", "taskList": {"name": "mainTaskList"}, "taskPriority": "15" } } ] }

Acciones que devuelven información acerca de la prioridad de las tareas

Puede obtener información sobre la prioridad de las tareas establecida (o establecer la prioridad predeterminada de las tareas) mediante las siguientes acciones de Amazon SWF:

  • DescribeActivityType devuelve el valor defaultTaskPriority del tipo de actividad en la sección configuration de la respuesta.

  • DescribeWorkflowExecution devuelve el valor taskPriority de la ejecución de flujo de trabajo en la sección executionConfiguration de la respuesta.

  • DescribeWorkflowType devuelve el valor defaultTaskPriority del tipo de flujo de trabajo en la sección configuration de la respuesta.

  • GetWorkflowExecutionHistory y PollForDecisionTask proporcionan información acerca de la prioridad de tareas en las secciones activityTaskScheduledEventAttributes, decisionTaskScheduledEventAttributes, workflowExecutionContinuedAsNewEventAttributes y workflowExecutionStartedEventAttributes de la respuesta.