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
Argomenti
@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 suNullDataConverter
, che indica che deve essere utilizzatoJsonDataConverter
.
@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 suUSE_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 il
defaultTaskHeartbeatTimeout
registrato 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 il
defaultScheduleToCloseTimeout
registrato 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 diretryExpirationSeconds
. 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@Workflow
annotazione, 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 aJsonDataConverter
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 il
defaultExecutionStartToCloseTimeout
registrato 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 il
defaultTaskStartToCloseTimeout
registrato 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 suUSE_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
-