

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Impostazione della priorità delle attività in Amazon SWF
<a name="programming-priority"></a>

Per impostazione predefinita, i task in un elenco di task sono consegnati in base alla relativa *ora di arrivo*. Per quanto possibile, i task pianificati per primi vengono eseguiti per primi. Impostando una priorità opzionale, puoi dare *priorità* a determinate attività: Amazon SWF cercherà di fornire attività con priorità più alta in un elenco di attività prima di quelle con priorità inferiore.

Puoi impostare priorità di task per flussi di lavoro e attività. La priorità di task di un flusso di lavoro non ha alcuna incidenza sulla priorità di task di attività che pianifica e nemmeno sui flussi di lavoro figlio che avvia. La priorità predefinita per un'attività o un flusso di lavoro viene impostata (da te o da Amazon SWF) durante la registrazione e la priorità dell'attività registrata viene sempre utilizzata a meno che non venga sostituita durante la pianificazione dell'attività o l'avvio di un'esecuzione del flusso di lavoro.

I valori della priorità di task possono andare da "-2147483648" a "2147483647", con i numeri più alti indicanti la priorità più elevata. Se non imposti la priorità di task per un'attività o un flusso di lavoro, verrà assegnata la priorità zero ("0").

**Topics**
+ [Impostazione della priorità di task per flussi di lavoro](#task-priority-workflows)
+ [Impostazione della priorità di task per attività](#task-priority-activities)

## Impostazione della priorità di task per flussi di lavoro
<a name="task-priority-workflows"></a>

Puoi impostare la priorità di task per un flusso di lavoro durante la registrazione o l'avvio dello stesso. La priorità di task impostata alla registrazione del flusso di lavoro è utilizzata come impostazione di default per qualsiasi esecuzione di flusso di lavoro di quel tipo, a meno che non venga sovrascritta all'avvio dell'esecuzione di flusso di lavoro.

Per registrare un tipo di flusso di lavoro con una priorità di attività predefinita, imposta l'*defaultTaskPriority*opzione in [WorkflowRegistrationOptions](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/flow/annotations/WorkflowRegistrationOptions.html)quando lo dichiari:

```
@Workflow
@WorkflowRegistrationOptions(
    defaultTaskPriority = 10,
    defaultTaskStartToCloseTimeoutSeconds = 240)
public interface PriorityWorkflow
{
    @Execute(version = "1.0")
    void startWorkflow(int a);
}
```

Puoi anche impostare *taskPriority* per un flusso di lavoro quando avvii quest'ultimo, sovrascrivendo la priorità di task (di default) registrata.

```
StartWorkflowOptions priorityWorkflowOptions
    = new StartWorkflowOptions().withTaskPriority(10);

PriorityWorkflowClientExternalFactory cf
    = new PriorityWorkflowClientExternalFactoryImpl(swfService, domain);

priority_workflow_client = cf.getClient();

priority_workflow_client.startWorkflow(
        "Smith, John", priorityWorkflowOptions);
```

Puoi inoltre impostare la priorità di task all'avvio di un flusso di lavoro figlio o quando si continua un flusso di lavoro come nuovo. Ad esempio, è possibile impostare l'opzione *[ContinueAsNewWorkflowExecutionParameters](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/flow/generic/ContinueAsNewWorkflowExecutionParameters.html)TaskPriority* in o in. [StartChildWorkflowExecutionParameters](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/flow/generic/StartChildWorkflowExecutionParameters.html)

## Impostazione della priorità di task per attività
<a name="task-priority-activities"></a>

Puoi impostare la priorità di task per un attività durante la registrazione o la pianificazione della stessa. La priorità di task impostata quando si registra un tipo di attività è utilizzata come priorità di default all'esecuzione dell'attività, a meno che non venga sovrascritta quando si pianifica l'attività.

Per registrare un tipo di attività con una priorità di attività predefinita, imposta l'*defaultTaskPriority*opzione in [ActivityRegistrationOptions](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/flow/annotations/ActivityRegistrationOptions.html)quando la dichiari:

```
@Activities(version = "1.0")
@ActivityRegistrationOptions(
    defaultTaskPriority = 10,
    defaultTaskStartToCloseTimeoutSeconds = 120)
public interface ImportantActivities {
    int doSomethingImportant();
}
```

Puoi anche impostare *taskPriority* per un'attività durante la pianificazione, sovrascrivendo la priorità di task (di default) registrata.

```
ActivitySchedulingOptions activityOptions = new ActivitySchedulingOptions.withTaskPriority(10);

ImportantActivitiesClient activityClient = new ImportantActivitiesClientImpl();

activityClient.doSomethingImportant(activityOptions);
```