AWS Flow Frameworkpour les annotations Java - AWS Flow Framework pour Java

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AWS Flow Frameworkpour les annotations Java

@Activités

Cette annotation peut être utilisée dans une interface pour déclarer un ensemble de types d'activités. Chaque méthode de l'interface comportant cette annotation représente un type d'activité. Une interface ne peut pas avoir à la fois des annotations @Workflow et @Activities.

Les paramètres suivants peuvent être spécifiés sur cette annotation :

activityNamePrefix

Spécifie le préfixe du nom des types d'activité déclarés dans l'interface. S'il est défini sur une chaîne vide (valeur par défaut), le nom de l'interface suivi d'un point (.) est utilisé comme préfixe.

version

Spécifie la version par défaut des types d'activité déclarés dans l'interface. La valeur par défaut est 1.0.

dataConverter

Spécifie le type de DataConverter à utiliser pour la sérialisation/désérialisation des données lors de la création de tâches de ce type d'activité et de ses résultats. Défini sur NullDataConverter par défaut, ce qui indique que JsonDataConverter doit être utilisé.

@Activité

Cette annotation peut être utilisée sur des méthodes au sein d'une interface annotée avec @Activities.

Les paramètres suivants peuvent être spécifiés sur cette annotation :

name

Spécifie le nom du type d'activité. La valeur par défaut est une chaîne vide, qui indique que le préfixe par défaut et le nom de la méthode d'activité doivent être utilisés pour déterminer le nom du type d'activité (au format {{préfixe}{{nom}). Notez que lorsque vous spécifiez un nom dans une annotation @Activity, l'infrastructure ne lui ajoutera pas automatiquement un préfixe. Vous êtes libre d'utiliser votre propre schéma d'attribution de noms.

version

Spécifie la version du type d'activité. Remplace la version par défaut spécifiée dans l'annotation @Activities sur l'interface qui la contient. La valeur par défaut est une chaîne vide.

@ActivityRegistrationOptions

Spécifie les options d'enregistrement d'un type d'activité. Cette annotation peut être utilisée dans une interface annotée avec @Activities ou les méthodes qu'elle contient. Si elle est spécifiée aux deux endroits, l'annotation utilisée sur la méthode prend effet.

Les paramètres suivants peuvent être spécifiés sur cette annotation :

defaultTasklist

Spécifie la liste de tâches par défaut à enregistrer auprès d'Amazon SWF pour ce type d'activité. Cette valeur par défaut peut être remplacée lors de l'appel de la méthode d'activité sur le client généré à l'aide du paramètre ActivitySchedulingOptions. Définie sur USE_WORKER_TASK_LIST par défaut. Il s'agit d'une valeur spéciale qui indique que la liste de tâches utilisée par l'exécuteur, qui effectue l'enregistrement, doit être utilisée.

defaultTaskScheduleToStartTimeoutSeconds

Spécifie la valeur defaultTaskScheduleToStartTimeout enregistrée auprès d'Amazon SWF pour ce type d'activité. Il s'agit du temps d'attente maximum autorisé pour une tâche de ce type d'activité avant qu'elle soit affectée à un exécuteur. ConsultezAmazon Simple Workflow Servicepour plus d'informations.

defaultTaskHeartbeatTimeoutSeconds

Spécifie ledefaultTaskHeartbeatTimeoutenregistré auprès d'Amazon SWF pour ce type d'activité. Les exécuteurs doivent indiquer les pulsations pendant cette durée, faute de quoi la tâche sera interrompue. Défini sur -1 par défaut, qui est une valeur spéciale qui indique que ce délai d'attente doit être désactivé. ConsultezAmazon Simple Workflow Servicepour plus d'informations.

defaultTaskStartToCloseTimeoutSeconds

Spécifie la valeur defaultTaskStartToCloseTimeout enregistrée auprès d'Amazon SWF pour ce type d'activité. Ce délai d'attente détermine le temps maximum de traitement d'une tâche d'activité de ce type par un exécuteur. ConsultezAmazon Simple Workflow Servicepour plus d'informations.

defaultTaskScheduleToCloseTimeoutSeconds

Spécifie ledefaultScheduleToCloseTimeoutenregistré auprès d'Amazon SWF pour ce type d'activité. Ce délai détermine la durée totale pendant laquelle la tâche peut rester ouverte. Défini sur -1 par défaut, qui est une valeur spéciale qui indique que ce délai d'attente doit être désactivé. ConsultezAmazon Simple Workflow Servicepour plus d'informations.

@Asynchrone

Lorsqu'elle est utilisée sur une méthode dans la logique de coordination du flux de travail, indique que la méthode doit être exécutée de manière asynchrone. Un appel à la méthode renverra immédiatement une valeur, mais l'exécution réelle se fera de manière asynchrone lorsque tous les paramètres Promise<> transmis aux méthodes seront prêts. Les méthodes annotées avec @Asynchronous doivent avoir le type de retour Promise<> ou être vides.

daemon

Indique si la tâche créée pour la méthode asynchrone doit être une tâche démon. False par défaut.

@Execute

En cas d'utilisation sur une méthode dans une interface annotée avec l'annotation @Workflow, identifie le point d'entrée du flux de travail.

Important

Une seule méthode de l'interface peut être décorée avec @Execute.

Les paramètres suivants peuvent être spécifiés sur cette annotation :

name

Spécifie le nom du type de flux de travail. S'il n'est pas défini, le nom par défaut {préfixe}{nom}, où{préfixe} est le nom de l'interface du flux de travail suivi par un '.' et par {nom} est le nom de la méthode décorée @Execute du flux de travail.

version

Spécifie la version du type de flux de travail.

@ExponentialRetry

En cas d'utilisation sur une activité ou une méthode asynchrone, définit une stratégie de nouvelle tentative exponentielle si la méthode lève une exception non gérée. Une nouvelle tentative est effectuée après une période d'interruption, qui est calculée en fonction du nombre de tentatives.

Les paramètres suivants peuvent être spécifiés sur cette annotation :

intialRetryIntervalSeconds

Spécifie la durée d'attente avant la première tentative de relance. Cette valeur ne doit pas être supérieure à maximumRetryIntervalSeconds et retryExpirationSeconds.

maximumRetryIntervalSeconds

Spécifie la durée maximale entre les tentatives de relance. Une fois le délai atteint, l'intervalle de nouvelle tentative est plafonné à cette valeur. La valeur par défaut est -1, ce qui signifie une durée illimitée.

retryExpirationSeconds

Spécifie la durée après laquelle la stratégie de nouvelle tentative exponentielle s'arrêtera. La valeur par défaut est -1, ce qui signifie qu'elle n'expire pas.

backoffCoefficient

Spécifie le coefficient utilisé pour calculer l'intervalle de nouvelle tentative. Consulter Stratégie de nouvelle tentative exponentielle.

maximumAttempts

Indique le nombre de tentatives après lequel la stratégie de nouvelle tentative exponentielle s'arrêtera. La valeur par défaut est -1, ce qui signifie que le nombre de nouvelles tentatives est illimité.

exceptionsToRetry

Spécifie le nombre de fois que le client NFS doit déclencher une nouvelle tentative. L'exception non gérée de ces types ne se propagera plus et la méthode sera retentée après l'intervalle de nouvelle tentative calculé. Par défaut, la liste contient Throwable.

excludeExceptions

Spécifie la liste des types d'exception qui ne doivent pas déclencher de nouvelle tentative. Les exceptions non gérées de ce type seront autorisées à se propager. Par défaut, la liste est vide.

@GetState

En cas d'utilisation sur une méthode dans une interface annotée avec @Workflow, identifie que la méthode est utilisée pour récupérer le dernier état d'exécution du flux de travail. Au maximum, il peut y avoir une méthode avec cette annotation dans une interface portant l'annotation @Workflow. Les méthodes ainsi annotées ne doivent pas prendre n'importe quel paramètre et leur type de retour doit impérativement être void.

@ManualActivityCompletion

Cette annotation peut être utilisée sur une méthode d'activité pour indiquer que la tâche d'activité ne doit pas être terminée lorsque la méthode est renvoyée. La tâche d'activité ne sera pas automatiquement terminée et devra être effectuée manuellement, directement à l'aide de l'API Amazon SWF. Ceci est utile lorsque la tâche d'activité est déléguée à un système externe qui n'est pas automatisé ou nécessite une intervention humaine pour être terminée.

@Signal

En cas d'utilisation sur une méthode dans une interface annotée avec @Workflow, identifie un signal qui peut être reçu par des exécutions du type de flux de travail déclaré par l'interface. L'utilisation de cette annotation est nécessaire pour définir une méthode de signal.

Les paramètres suivants peuvent être spécifiés sur cette annotation :

name

Spécifie la partie nom du nom du signal. Si ce paramètre n'est pas défini, le nom de la méthode est utilisé.

@SkipRegistration

En cas d'utilisation dans une interface annotée avec le@Workflowindique que le type de flux de travail ne doit pas être enregistré auprès d'Amazon SWF. L'une des annotations @WorkflowRegistrationOptions et @SkipRegistrationOptions doit être utilisée sur une interface annotée avec @Workflow, mais pas les deux.

@Wait et @NoWait

Ces annotations peuvent être utilisées sur un paramètre de typePromise<>pour indiquer si leAWS Flow Frameworkpour Java doit attendre qu'il soit prêt avant d'exécuter la méthode. Par défaut, les paramètres Promise<> transmis aux méthodes @Asynchronous doivent être prêts avant l'exécution de la méthode. Dans certaines situations, il est nécessaire de remplacer ce comportement par défaut. Les paramètres Promise<> passés dans les méthodes @Asynchronous et annotée avec @NoWait ne sont pas attendus.

Les paramètres des collections (ou sous-classes) qui contiennent des objets Promise comme List<Promise<Int>>, doivent être annotés avec @Wait. Par défaut, l'infrastructure n'attend pas les membres d'une collection.

@Flux de travail

Cette annotation est utilisée sur une interface pour déclarer un type de flux de travail. Une interface décorée avec cette annotation doit contenir exactement une méthode qui est décorée avec @Execute pour déclarer un point d'entrée pour votre flux de travail.

Note

Dans une interface, les annotations @Workflow et @Activities ne peuvent pas être déclarées en même temps ; elles sont mutuellement exclusives.

Les paramètres suivants peuvent être spécifiés sur cette annotation :

dataConverter

Spécifie quel DataConverter utiliser lors de l'envoi de demandes et de la réception de résultats pour les exécutions de flux de travail de ce type de flux de travail.

La valeur par défaut NullDataConverter bascule à son tour sur JsonDataConverter pour traiter toutes les données des demandes et des réponses en tant que JavaScript Object Notation (JSON).

Exemple

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

Lorsqu'il est utilisé sur une interface annotée avec@Workflow, fournit les paramètres par défaut utilisés pour Amazon SWF lors de l'enregistrement du type de flux de travail.

Note

Vous devez utiliser @WorkflowRegistrationOptions ou @SkipRegistrationOptions dans une interface annotée avec @Workflow, mais vous ne pouvez pas spécifier les deux.

Les paramètres suivants peuvent être spécifiés sur cette annotation :

Description

Texte descriptif facultatif du type de flux de travail.

defaultExecutionStartToCloseTimeoutSeconds

Spécifie ledefaultExecutionStartToCloseTimeoutenregistré auprès d'Amazon SWF pour le type de flux de travail. Durée totale autorisée pour qu'une exécution de flux de travail de ce type se termine.

Pour plus d'informations sur les délais d'expiration des flux de travail, consultez la section Types de délai d'expiration Amazon SWF .

defaultTaskStartToCloseTimeoutSeconds

Spécifie ledefaultTaskStartToCloseTimeoutenregistré auprès d'Amazon SWF pour le type de flux de travail. Ce paramètre spécifie le temps maximum autorisé pour qu'une tâche de décision unique d'une exécution de flux de travail de ce type se termine.

Si vous ne spécifiez pas defaultTaskStartToCloseTimeout, la valeur par défaut est 30 secondes.

Pour plus d'informations sur les délais d'expiration des flux de travail, consultez la section Types de délai d'expiration Amazon SWF .

defaultTaskList

Liste de tâches par défaut utilisée pour les tâches de décision pour les exécutions de ce type de flux de travail. Cette valeur par défaut peut être remplacée en utilisant StartWorkflowOptions lors du démarrage d'une exécution de flux de travail.

Si vous ne spécifiez pas defaultTaskList, la valeur USE_WORKER_TASK_LIST sera utilisée par défaut. Ce paramètre indique que la liste de tâches utilisée par l'exécuteur qui effectue l'enregistrement du flux de travail doit être utilisée.

defaultChildPolicy

Spécifie la stratégie à utiliser pour les exécutions de flux de travail enfant si une exécution de ce type est arrêtée. La valeur par défaut est ABANDON. Les valeurs possibles sont :

  • ABANDON— Permet aux exécutions de flux de travail enfant de continuer à s'exécuter.

  • TERMINATE— Terminer les exécutions de flux de travail enfant

  • REQUEST_CANCELDemande l'annulation de l'exécution du flux de travail enfant