Definindo a prioridade de tarefas - Amazon Simple Workflow Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Definindo a prioridade de tarefas

Por padrão, as tarefas em uma lista de tarefas são entregues de acordo com sua hora de chegada: as primeiras tarefas a serem agendadas são geralmente executadas antes, na medida do possível. Ao definir uma prioridade de tarefa opcional, você pode dar prioridade a determinadas tarefas: O Amazon SWF tentará entregar as tarefas de maior prioridade em uma lista de tarefas antes daquelas com menor prioridade.

nota

As tarefas agendadas primeiro geralmente são executadas antes, mas isso não é garantido.

Você pode definir prioridades de tarefas para fluxos de trabalho e atividades. A prioridade de tarefas de um fluxo de trabalho não afeta a prioridade de nenhuma das tarefas de atividades que ele agenda, nem afeta nenhum dos fluxos de trabalho secundários que ele inicia. A prioridade padrão de uma atividade ou fluxo de trabalho é definida (por você ou pelo Amazon SWF) durante o registro, e a prioridade da tarefa registrada é sempre usada, a menos que seja substituída durante o agendamento da atividade ou o início da execução de um fluxo de trabalho.

Valores de prioridade de tarefas podem variar de "-2147483648" até "2147483647", com números mais altos indicando maior prioridade. Se você não definir a prioridade de tarefas para uma atividade ou um fluxo de trabalho, este(a) último(a) receberá uma prioridade de zero ("0").

Definindo a prioridade de tarefas para fluxos de trabalho

Você pode definir a prioridade de tarefa para um fluxo de trabalho ao registrá-lo ou iniciá-lo. A prioridade de tarefa definida quando o tipo de fluxo de trabalho é registrado é utilizada como padrão para qualquer execução de fluxo de trabalho desse tipo, a menos que ela seja substituída no momento de iniciar a execução de fluxo de trabalho.

Para registrar um tipo de fluxo de trabalho com uma prioridade de tarefas padrão, defina a opção defaultTaskPriority ao usar a ação RegisterWorkflowType:

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

Você pode substituir a prioridade de tarefa registrada de um tipo de fluxo de trabalho ao iniciar uma execução de fluxo de trabalho com 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"}, }

Você também pode substituir a prioridade de tarefa registrada ao iniciar um fluxo de trabalho secundário ou ao continuar um fluxo de trabalho como novo, por exemplo, ao responder a uma decisão com RespondDecisionTaskCompleted.

Para definir a prioridade de tarefa de um fluxo de trabalho secundário, forneça o valor em 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" } } } ] }

Ao continuar um fluxo de trabalho como novo, defina a prioridade de tarefa em 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" } } ] }

Definindo a prioridade de tarefas para atividades

Você pode definir a prioridade de tarefa para uma atividade ao registrá-la ou agendá-la. A prioridade de tarefa definida ao registrar um tipo de atividade é usada como a prioridade padrão quando essa atividade é executada, a menos que ela seja substituída no momento de agendar a atividade.

Para definir a prioridade de tarefa ao registrar um tipo de atividade, defina a opção defaultTaskPriority ao usar a ação 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 agendar uma tarefa com uma prioridade de tarefa, use a opção taskPriority ao agendar a atividade com a ação 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" } } ] }

Ações que retornam informações de prioridade de tarefa

Você pode obter informações sobre a prioridade da tarefa definida (ou definir a prioridade da tarefa padrão) nas seguintes ações do Amazon SWF:

  • DescribeActivityType retorna o defaultTaskPriority do tipo de atividade na seção configuration da resposta.

  • DescribeWorkflowExecution retorna a taskPriority da execução de fluxo de trabalho na seção executionConfiguration da resposta.

  • DescribeWorkflowType retorna o defaultTaskPriority do tipo de fluxo de trabalho na seção configuration da resposta.

  • GetWorkflowExecutionHistory e PollForDecisionTask fornece informações de prioridade de tarefas nas seções activityTaskScheduledEventAttributes, decisionTaskScheduledEventAttributes, workflowExecutionContinuedAsNewEventAttributes e workflowExecutionStartedEventAttributes da resposta.