Come AWS Flow Framework funziona 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à.

Come AWS Flow Framework funziona Java

The AWS Flow Framework for Java funziona con Amazon SWF per semplificare la creazione di applicazioni scalabili e con tolleranza ai guasti per eseguire attività asincrone che possono essere di lunga durata, remote o entrambe. Il programma «Hello World!» alcuni esempi Che cos'è AWS Flow Framework per Java? hanno introdotto le nozioni di base su come utilizzarlo per AWS Flow Framework implementare applicazioni di flusso di lavoro di base. Questa sezione fornisce informazioni concettuali sul funzionamento AWS Flow Framework delle applicazioni. La prima sezione riassume la struttura di base di un' AWS Flow Framework applicazione, mentre le sezioni rimanenti forniscono ulteriori dettagli sul funzionamento AWS Flow Framework delle applicazioni.

Tipi di timeout di Amazon SWF

Per garantire che le esecuzioni dei flussi di lavoro vengano eseguite correttamente, Amazon SWF consente di impostare diversi tipi di timeout. Alcuni timeout specificano la durata totale del flusso di lavoro. Altri timeout specificano quanto impiegano le attività prima di essere assegnate a un lavoratore e quanto ci vuole a completarle dal momento in cui sono state pianificate. Tutti i timeout nell'API Amazon SWF sono specificati in secondi. Amazon SWF supporta anche la stringa NONE come valore di timeout, che indica l'assenza di timeout.

Per i timeout relativi alle attività decisionali e alle attività, Amazon SWF aggiunge un evento alla cronologia di esecuzione del flusso di lavoro. Gli attributi dell'evento forniscono informazioni sul tipo di timeout verificatosi e su quale attività decisionale o attività è stata influenzata. Amazon SWF pianifica anche un'attività decisionale. Quando il decisore riceve il nuovo compito decisionale, vedrà l'evento di timeout nella cronologia e intraprenderà l'azione appropriata richiamando l'azione. RespondDecisionTaskCompleted

Un task si considera aperto dal momento in cui è pianificato fino alla sua chiusura. Perciò un task è segnalato come aperto quando un lavoratore lo sta elaborando. Un task è chiuso quando un lavoratore lo segnala come completato, annullato o non riuscito. Un'attività può anche essere chiusa da Amazon SWF a seguito di un timeout.

I timeout nel flusso di lavoro e i task di decisione

Il diagramma seguente mostra la correlazione tra i timeout del flusso di lavoro e di decisione e il ciclo di vita di un flusso di lavoro:

Il ciclo di vita del flusso di lavoro con i timeout

Esistono due tipi di timeout che interessano i task del flusso di lavoro e di decisione:

  • Workflow Start to Close (timeoutType: START_TO_CLOSE): questo timeout specifica il tempo massimo necessario per completare l'esecuzione di un flusso di lavoro. È impostato come predefinito durante la registrazione del flusso di lavoro, ma può essere sovrascritto con un valore diverso quando il flusso di lavoro inizia. Se questo timeout viene superato, Amazon SWF chiude l'esecuzione del flusso di lavoro e aggiunge un evento di WorkflowExecutionTimedOuttipo alla cronologia di esecuzione del flusso di lavoro. Oltre al timeoutType, gli attributi dell'evento specificano la childPolicy valida per l'esecuzione del flusso di lavoro. La policy figlio specifica in che modo vengono gestite le esecuzioni del flusso di lavoro figlio se quella padre scade o termina in altro modo. Ad esempio, se la childPolicy è impostata su TERMINATA, allora le esecuzioni del flusso di lavoro figlio verranno terminate. Una volta scaduta un'esecuzione del flusso di lavoro, non potrai più intervenire se non con chiamate di visibilità.

  • Inizio e chiusura dell'attività decisionale (timeoutType: START_TO_CLOSE): questo timeout specifica il tempo massimo che il decisore corrispondente può impiegare per completare un'attività decisionale. Viene impostato durante la registrazione del tipo di flusso di lavoro. Se questo timeout viene superato, l'attività viene contrassegnata come scaduta nella cronologia di esecuzione del flusso di lavoro e Amazon SWF aggiunge un evento di tipo DecisionTaskTimedOutalla cronologia del flusso di lavoro. Gli attributi dell'evento comprendono gli ID degli eventi corrispondenti a quando il task di decisione è stato pianificato (scheduledEventId) e a quando è iniziato (startedEventId). Oltre ad aggiungere l'evento, Amazon SWF pianifica anche una nuova attività decisionale per avvisare il decisore che tale attività decisionale è scaduta. Dopo che si verifica questo timeout, il tentativo di completare il task di decisione scaduto utilizzando RespondDecisionTaskCompleted non andrà a buon fine.

Timeout nei task di attività

Il diagramma seguente mostra la correlazione tra i timeout e il ciclo di vita di un task di attività:

Il ciclo di vita di un task con i timeout

Esistono quattro tipi di timeout che interessano i task di attività:

  • Inizio attività da inizio a chiusura (timeoutType: START_TO_CLOSE): questo timeout specifica il tempo massimo che un addetto all'attività può impiegare per elaborare un'attività dopo che il lavoratore ha ricevuto l'attività. Tenta di chiudere un'attività scaduta utilizzando RespondActivityTaskCancelede RespondActivityTaskCompletedRespondActivityTaskFailedfallirà.

  • Activity Task Heartbeat (timeoutType: HEARTBEAT): questo timeout specifica il tempo massimo di esecuzione di un'attività prima che il relativo avanzamento nel corso dell'azione possa avvenire. RecordActivityTaskHeartbeat

  • Activity Task Schedule to Start (timeoutType: SCHEDULE_TO_START): questo timeout specifica per quanto tempo Amazon SWF attende prima di scadere il timeout dell'attività se non sono disponibili lavoratori per eseguire l'attività. Una volta scaduto, il task non verrà assegnato ad altri lavoratori.

  • Activity Task Schedule to Close (timeoutType: SCHEDULE_TO_CLOSE): questo timeout specifica quanto tempo può impiegare l'attività dal momento in cui è pianificata al momento in cui viene completata. Come procedura ottimale, questo valore non deve essere maggiore della somma del timeout dell'attività e del schedule-to-start timeout dell'attività. start-to-close

Nota

Ciascun tipo di timeout ha un valore predefinito, generalmente impostato su NONE (infinito). In ogni caso, il tempo massimo per l'esecuzione delle attività è un anno.

In fase di registrazione del tipo di attività si impostano valori predefiniti, ma puoi sovrascriverli con nuovi valori quando pianifichi il task di attività. Quando si verifica uno di questi timeout, Amazon SWF aggiungerà un evento di ActivityTaskTimedOuttipo alla cronologia del flusso di lavoro. L'attributo del valore timeoutType di questo evento specifica quale di questi timeout si è verificato. Per ciascuno dei timeout, il valore del timeoutType è indicato tra parentesi. Gli attributi dell'evento comprendono anche gli ID degli eventi corrispondenti a quando il task di attività è stato pianificato (scheduledEventId) e a quando è iniziato (startedEventId). Oltre ad aggiungere l'evento, Amazon SWF pianifica anche una nuova attività decisionale per avvisare chi decide che si è verificato il timeout.