AWS Flow Frameworkper Annotazioni Java - AWS Flow Framework per Java

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à.

AWS Flow Frameworkper Annotazioni Java

@Activities

Questa annotazione può essere usata su un'interfaccia per dichiarare un set di tipi di attività. Ciascun metodo in un'interfaccia che abbia questa annotazione rappresenta un tipo di attività. Un'interfaccia non può avere contemporaneamente l'annotazione @Workflow e quella @Activities-

Su questa annotazione possono essere specificati i seguenti parametri:

activityNamePrefix

Specifica il prefisso del nome dei tipi di attività dichiarati nell'interfaccia. Se impostato su una stringa vuota (valore predefinito), il nome dell'interfaccia seguito da '.' viene utilizzato come prefisso.

version

Specifica la versione predefinita dei tipi di attività dichiarati nell'interfaccia. Il valore di default è 1.0.

dataConverter

Specifica il tipo di DataConverter da utilizzare per serializzare/deserializzare i dati nella creazione dei task di questo tipo di attività e dei suoi risultati. Impostato come predefinito su NullDataConverter, che indica che deve essere utilizzato JsonDataConverter.

@Activity

Questa annotazione può essere usata sui metodi in un'interfaccia che abbia l'annotazione @Activities.

Su questa annotazione possono essere specificati i seguenti parametri:

name

Specifica il nome del tipo di attività. Il valore predefinito è una stringa vuota, che indica che per stabilire il nome del tipo di attività, (che è in formato {prefisso}{nome}) occorre utilizzare il prefisso predefinito e il nome del metodo dell'attività. Ricorda che quando specifichi un nome in un'annotazione @Activity, il framework non vi aggiunge automaticamente un prefisso. Sei libero di usare il tuo schema di denominazione.

version

Specifica la versione del tipo di attività. Sovrascrive la versione predefinita specificata nell'annotazione @Activities nell'interfaccia che la contiene. L'impostazione predefinita è una stringa vuota.

@ActivityRegistrationOptions

Specifica le opzioni di registrazione di un tipo di attività. Questa annotazione può essere usata su un'interfaccia annotata con @Activities o sui metodi all'interno. Se specificata in entrambe le posizioni, prevale l'annotazione usata sul metodo.

Su questa annotazione possono essere specificati i seguenti parametri:

defaultTasklist

Specifica l'elenco predefinito di task da registrare con Amazon SWF per questo tipo di attività. Il valore predefinito può essere sovrascritto quando si chiama il metodo dell'attività sul client generato utilizzando il parametro ActivitySchedulingOptions. Impostato come predefinito su USE_WORKER_TASK_LIST. Questo è un valore speciale che indica che va utilizzato l'elenco di task usato dal lavoratore che esegue la registrazione.

defaultTaskScheduleToStartTimeoutSeconds

Specifica il defaultTaskScheduleToStartTimeout registrato con Amazon SWF per questo tipo di attività. Questo è il tempo massimo di attesa di un task di questo tipo di attività prima che venga assegnato a un lavoratore. ConsultaRiferimento API di Amazon Simple Workflow Serviceper ulteriori dettagli,.

defaultTaskHeartbeatTimeoutSeconds

Specifica ildefaultTaskHeartbeatTimeoutregistrato con Amazon SWF per questo tipo di attività. In questo periodo i lavoratori di attività devono fornire messaggi di heartbeat; in caso contrario, il task scade. Impostato come predefinito a -1, un valore speciale che indica che il timeout deve essere disattivato. ConsultaRiferimento API di Amazon Simple Workflow Serviceper ulteriori dettagli,.

defaultTaskStartToCloseTimeoutSeconds

Specifica il defaultTaskStartToCloseTimeout registrato con Amazon SWF per questo tipo di attività. Il timeout determina il tempo massimo che un lavoratore può impiegare per elaborare un task di attività di questo tipo. ConsultaRiferimento API di Amazon Simple Workflow Serviceper ulteriori dettagli,.

defaultTaskScheduleToCloseTimeoutSeconds

Specifica ildefaultScheduleToCloseTimeoutregistrato con Amazon SWF per questo tipo di attività. Questo timeout determina il tempo totale in cui il task può rimanere nello stato aperto. Impostato come predefinito a -1, un valore speciale che indica che il timeout deve essere disattivato. ConsultaRiferimento API di Amazon Simple Workflow Serviceper ulteriori dettagli,.

@Asincrona

Se usata su un metodo nella logica di coordinamento del flusso di lavoro, indica che il metodo deve essere eseguito in modo asincrono. La chiamata al metodo viene restituita immediatamente, ma l'esecuzione in corso accade in modo asincrono quando sono pronti tutti i parametri Promise<> trasferiti ai metodi. I metodi annotati con @Asynchronous devono avere un tipo di restituzione Promise<> o void.

daemon

Indica se il task creato per il metodo asincrono deve essere di tipo daemon. False per impostazione predefinita.

@Execute

Se usata su un metodo in'un interfaccia annotata con @Workflow, identifica il punto di ingresso del flusso di lavoro.

Importante

L'annotazione @Execute può essere applicata a un solo metodo nell'interfaccia.

Su questa annotazione possono essere specificati i seguenti parametri:

name

Specifica il nome del tipo di flusso di lavoro. Se non è impostato, il nome predefinito è {prefisso}{nome}, dove {prefisso} è il nome dell'interfaccia di flussi di lavoro seguito da un '.' e {nome} è il nome del metodo con annotazione @Execute nel flusso di lavoro.

version

Specifica la versione del tipo di flusso di lavoro.

@ExponentialRetry

se usata su un'attività o su un metodo asincrono, imposta una policy di ripetizione esponenziale nel caso in cui il metodo genera un'eccezione non gestita. Un tentativo di ripetizione viene effettuato dopo un periodo di backoff, calcolato in base all'efficacia del numero dei tentativi.

Su questa annotazione possono essere specificati i seguenti parametri:

intialRetryIntervalSeconds

Specifica il tempo di attesa prima del primo tentativo di ripetizione. Il valore non deve essere maggiore di maximumRetryIntervalSeconds e di retryExpirationSeconds.

maximumRetryIntervalSeconds

Specifica il tempo massimo tra i tentativi di ripetizione. Una volta raggiunto, l'intervallo tra i tentativi di ripetizione sarà limitato a questo valore. Impostato come predefinito a -1, il che significa una durata illimitata.

retryExpirationSeconds

Specifica il tempo dopo il quale la ripetizione esponenziale si arresta. Impostato come predefinito a -1, il che significa che non c'è scadenza.

backoffCoefficient

Specifica il coefficiente utilizzato per calcolare l'intervallo di ripetizione. Per informazioni, consultare Strategia di ripetizione esponenziale.

maximumAttempts

Specifica il numero di tentativi dopo il quale la ripetizione esponenziale si arresta. Impostato come predefinito a -1, il che significa che non c'è limite al numero di tentativi di ripetizioni.

exceptionsToRetry

Specifica l'elenco dei tipi di eccezione che attivano una ripetizione. L'eccezione non gestita di questi tipi non verrà propagata ulteriormente e il metodo sarà ripetuto dopo l'intervallo di ripetizione calcolato. Per impostazione predefinita, l'elenco contiene Throwable.

excludeExceptions

Specifica l'elenco dei tipi di eccezione che non attivano una ripetizione. Le eccezioni non gestite di questo tipo possono propagarsi. Per impostazione predefinita, l'elenco è vuoto.

@GetState

Se usata su un metodo in'un interfaccia annotata con @Workflow, identifica che il metodo è utilizzato per recuperare lo stato dell'ultima esecuzione del flusso di lavoro. Ci può essere al massimo un metodo con questa annotazione in un'interfaccia con l'annotazione @Workflow. I metodi così annotati non devono acquisire parametri e devono avere un tipo di restituzione diverso da void.

@ManualActivityCompletion

Questa annotazione può essere utilizzata su un metodo di attività per indicare che il task di attività non deve essere completato alla restituzione del metodo. Il task di attività non verrà completato automaticamente e dovrà essere completato manualmente, con l'uso diretto dell'API di Amazon SWF. Questo è utile per casi d'uso in cui il task di attività è delegato a un sistema esterno non automatizzato o che richiede l'intervento umano per il completamento.

@Signal

Se usata su un metodo in'un interfaccia annotata con @Workflow, identifica un segnale che può essere ricevuto dalle esecuzioni del tipo di flusso di lavoro dichiarato dall'interfaccia. L'uso di questa annotazione è obbligatorio per definire un metodo di segnale.

Su questa annotazione possono essere specificati i seguenti parametri:

name

Specifica la porzione nominale del nome del segnale. Se non è impostato, si usa il nome del metodo.

@SkipRegistration

Se usato su un'interfaccia annotata con il@Workflowannotazione, indica che il tipo di flusso di lavoro non deve essere registrato con Amazon SWF. Una delle annotazioni @WorkflowRegistrationOptions e @SkipRegistrationOptions devono essere usate su un'interfaccia con annotazione @Workflow, ma non entrambe.

@Wait e @NoWait

Queste annotazioni possono essere utilizzate su un parametro di tipoPromise<>per indicare se ilAWS Flow Frameworkper Java dovrebbe attendere che sia pronto prima di eseguire il metodo. Per impostazione predefinita, i parametri Promise<> trasferiti sui metodi @Asynchronous devono diventare pronti prima che si verifichi l'esecuzione del metodo. In alcuni casi, è necessario ignorare questo comportamento predefinito. I parametri Promise<> trasferiti sui metodi @Asynchronous con l'annotazione @NoWait non sono attesi.

I parametri (o le sottoclassi) di raccolta che contengono promesse, come List<Promise<Int>>, devono essere arricchiti con l'annotazione @Wait. Per impostazione predefinita, il framework non attende i membri di una raccolta.

@Flusso di lavoro

Questa annotazione viene usata su un'interfaccia per dichiarare un tipo di flusso di lavoro. Un'interfaccia decorata con questa annotazione deve contenere esattamente un metodo decorato con l'annotazione @Execute per dichiarare un punto di ingresso del flusso di lavoro.

Nota

Un'interfaccia non può avere le annotazioni @Workflow e @Activities dichiarate simultaneamente; sono reciprocamente esclusive.

Su questa annotazione possono essere specificati i seguenti parametri:

dataConverter

Specifica quali DataConverter utilizzare nell'invio di richieste alle esecuzioni (e nella ricezione di risultati dalle esecuzioni) di questo tipo di flusso di lavoro.

Il valore predefinito è NullDataConverter che in cambio torna a JsonDataConverter per elaborare tutti i dati di richiesta e risposta come JavaScript Object Notation (JSON).

Esempio

import com.amazonaws.services.simpleworkflow.flow.annotations.Execute; import com.amazonaws.services.simpleworkflow.flow.annotations.Workflow; import com.amazonaws.services.simpleworkflow.flow.annotations.WorkflowRegistrationOptions; @Workflow @WorkflowRegistrationOptions(defaultExecutionStartToCloseTimeoutSeconds = 3600) public interface GreeterWorkflow { @Execute(version = "1.0") public void greet(); }

@WorkflowRegistrationOptions

Se utilizzato su un'interfaccia annotata con@Workflow, fornisce le impostazioni predefinite utilizzate da Amazon SWF durante la registrazione del tipo di flusso di lavoro.

Nota

O @WorkflowRegistrationOptions o @SkipRegistrationOptions devono essere usate su un'interfaccia con annotazione @Workflow, ma non puoi specificarle entrambe.

Su questa annotazione possono essere specificati i seguenti parametri:

Descrizione

Una descrizione di testo facoltativa del tipo di flusso di lavoro.

defaultExecutionStartToCloseTimeoutSeconds

Specifica ildefaultExecutionStartToCloseTimeoutregistrato con Amazon SWF per il tipo di flusso di lavoro. Il tempo totale che l'esecuzione di un flusso di lavoro di questo tipo può impiegare per il completamento.

Per ulteriori informazioni sui timeout del flusso di lavoro, consulta Tipi di timeout di Amazon SWF .

defaultTaskStartToCloseTimeoutSeconds

Specifica ildefaultTaskStartToCloseTimeoutregistrato con Amazon SWF per il tipo di flusso di lavoro. Specifica il tempo che un solo task di decisione di un'esecuzione di un flusso di lavoro di questo tipo può impiegare per il completamento.

Se non specifichi defaultTaskStartToCloseTimeout, per impostazione predefinita sarà di 30 secondi.

Per ulteriori informazioni sui timeout del flusso di lavoro, consulta Tipi di timeout di Amazon SWF .

defaultTaskList

L'elenco predefinito di task utilizzato per i task di decisione per le esecuzioni di questo tipo di flusso di lavoro. L'impostazione predefinita qui può essere sovrascritta utilizzando StartWorkflowOptions in fase di avvio di un'esecuzione del flusso di lavoro.

Se non specifichi defaultTaskList, verrà impostato su USE_WORKER_TASK_LIST come impostazione predefinita. Indica che va utilizzato l'elenco di task usato dal lavoratore che esegue la registrazione del flusso di lavoro.

defaultChildPolicy

Specifica la policy da utilizzare per i flussi di lavoro figli se un'esecuzione di questo tipo è terminata. Il valore di default è ABANDON. I valori possibili sono:

  • ABANDON— Consenti alle esecuzioni del flusso di lavoro figlio di continuare a funzionare

  • TERMINATE- Terminare le esecuzioni del flusso di lavoro figlio

  • REQUEST_CANCEL— Richiedere l'annullamento delle esecuzioni del flusso di lavoro figlio