AWS Flow Frameworkfür Java-Annotationen - AWS Flow Framework für Java

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AWS Flow Frameworkfür Java-Annotationen

@Aktivität

Diese Annotation kann für eine Schnittstelle verwendet werden, um eine Gruppe von Aktivitätstypen zu deklarieren. Jede Methode in einer mit dieser Annotation versehenen Schnittstelle stellt einen Aktivitätstyp dar. Eine Schnittstelle kann nicht sowohl @Workflow- als auch @Activities-Annotationen enthalten.

Die folgenden Parameter können über dieser Annotation angegeben werden:

activityNamePrefix

Gibt das Präfix des Namens des in der Schnittstelle deklarierten Aktivitätstyps an. Wenn der Wert auf eine leere Zeichenfolge festgelegt ist (Standard), wird der Name der Schnittstelle gefolgt von einem Punkt (.) als Präfix verwendet.

version

Gibt die Standardversion der in der Schnittstelle deklarierten Aktivitätstypen an. Der Standardwert ist 1.0.

dataConverter

Gibt den Typ des DataConverter an, der beim Erstellen von Aufgaben dieses Aktivitätstyps und ihrer Ergebnisse für die Serialisierung/Deserialisierung von Daten verwendet werden soll. Standardmäßig auf NullDataConverter festgelegt, was bedeutet, dass das JsonDataConverter verwendet werden soll.

@Aktivität

Diese Annotation kann für Methoden innerhalb einer mit @Activities definierten Schnittstelle verwendet werden.

Die folgenden Parameter können über dieser Annotation angegeben werden:

name

Gibt den Namen des Aktivitätstyps an. Der Standardwert ist eine leere Zeichenfolge. Diese gibt an, dass der Name des Aktivitätstyps über das Standardpräfix und den Namen der Aktivitätsmethode ({Präfix}{Name}) festgelegt werden soll. Beachten Sie, dass das Framework bei der Angabe eines Namens in einer @Activity-Annotation nicht automatisch ein Präfix voranstellt. Es steht Ihnen frei, Ihr eigenes Namensschema zu verwenden.

version

Gibt die Version des Aktivitätstyps an. Dies überschreibt die Standardversion, die in der @Activities-Annotation der enthaltenden Schnittstelle angegeben ist. Der Standardwert ist eine leere Zeichenfolge.

@ActivityRegistrationOptions

Gibt die Registrierungsoptionen für einen Aktivitätstyp an. Diese Annotation kann für eine Schnittstelle verwendet werden, die mit @Activities oder den darin enthaltenen Methoden definiert ist. Beim Festlegen an beiden Orten gilt die für die Methode verwendete Annotation.

Die folgenden Parameter können über dieser Annotation angegeben werden:

defaultTasklist

Gibt die Standardaufgabenliste an, die bei Amazon SWF für diesen Aktivitätstyp registriert werden soll. Dieser Standardwert kann beim Aufruf der Aktivitätsmethode für den generierten Client über den Parameter ActivitySchedulingOptions überschrieben werden. Standardmäßig auf USE_WORKER_TASK_LIST festgelegt. Dies ist ein spezieller Wert. Er gibt an, dass die Aufgabenliste des Workers verwendet werden soll, der die Registrierung durchführt.

defaultTaskScheduleToStartTimeoutSeconds

Gibt den Wert defaultTaskScheduleToStartTimeout an, der bei Amazon SWF für diesen Aktivitätstyp registriert ist. Dies ist die maximale Zeit, die eine Aufgabe dieses Aktivitätstyps warten darf, bevor sie einem Worker zugeordnet wird. Siehe dieReferenz für Amazon Simple Workflow Service APIWeitere Details finden Sie unter.

defaultTaskHeartbeatTimeoutSeconds

Gibt dasdefaultTaskHeartbeatTimeoutbei Amazon SWF für diesen Aktivitätstyp registriert. Aktivitäts-Worker müssen innerhalb dieser Zeit einen Heartbeat liefern – andernfalls gibt es einen Timeout für die Aufgabe. Standardmäßig auf -1 festgelegt. Dieser spezielle Wert gibt an, dass der Timeout deaktiviert werden soll. Siehe dieReferenz für Amazon Simple Workflow Service APIWeitere Details finden Sie unter.

defaultTaskStartToCloseTimeoutSeconds

Gibt den Wert defaultTaskStartToCloseTimeout an, der bei Amazon SWF für diesen Aktivitätstyp registriert ist. Dieser Timeout bestimmt die maximale Zeit, die ein Worker für die Bearbeitung einer Aktivität dieses Typs benötigen darf. Siehe dieReferenz für Amazon Simple Workflow Service APIWeitere Details finden Sie unter.

defaultTaskScheduleToCloseTimeoutSeconds

Gibt dasdefaultScheduleToCloseTimeoutbei Amazon SWF für diesen Aktivitätstyp registriert. Dieser Timeout bestimmt die Gesamtdauer, für die die Aufgabe im offenen Zustand bleiben kann. Standardmäßig auf -1 festgelegt. Dieser spezielle Wert gibt an, dass der Timeout deaktiviert werden soll. Siehe dieReferenz für Amazon Simple Workflow Service APIWeitere Details finden Sie unter.

@Asynchron

Gibt bei Verwendung für eine Methode in der Workflow-Koordinationslogik an, dass die Methode asynchron ausgeführt werden soll. Ein Aufruf der Methode gibt die Kontrolle sofort zurück. Die eigentliche Ausführung erfolgt jedoch asynchron, sobald alle an die Methoden übergebenen Promise<>-Parameter bereit sind. Mit @Asynchronous definierte Methoden müssen den Rückgabetyp Promise<> oder void haben.

daemon

Gibt an, ob die für die asynchrone Methode erstellte Aufgabe eine Daemon-Aufgabe sein soll. Standardmäßig ist False festgelegt.

@Execute

Bei Verwendung für eine Methode in einer mit der @Workflow-Annotation definierten Schnittstelle gibt dieser Wert den Einstiegspunkt des Workflows an.

Wichtig

Nur eine Methode in der Schnittstelle darf mit @Execute ausgezeichnet werden.

Die folgenden Parameter können über dieser Annotation angegeben werden:

name

Gibt den Namen des Workflowtyps an. Falls die Option nicht festgelegt ist, lautet der Name standardmäßig {prefix}{name}, wobei {prefix} der Name der Workflow-Schnittstelle ist, gefolgt von einem Punkt (.) und {name} der Name der @Execute-verziert-Methode im Workflow ist.

version

Gibt die Version des Workflowtyps an.

@ExponentialRetry

Legt bei Verwendung für eine Aktivität oder eine asynchrone Methode eine exponentielle Wiederholungsrichtlinie fest, falls die Methode eine unbehandelte Ausnahme auslöst. Ein Wiederholungsversuch erfolgt nach einer Backoff-Periode, die sich über die Anzahl der Versuche errechnet.

Die folgenden Parameter können über dieser Annotation angegeben werden:

intialRetryIntervalSeconds

Gibt die Dauer an, die vor dem ersten Wiederholungsversuch gewartet werden soll. Dieser Wert sollte nicht größer als maximumRetryIntervalSeconds und retryExpirationSeconds sein.

maximumRetryIntervalSeconds

Gibt die maximale Dauer zwischen den Wiederholungsversuchen an. Einmal erreicht, wird das Wiederholungsintervall auf diesen Wert begrenzt. Standardmäßig auf -1 festgelegt, was für eine unbegrenzte Dauer steht.

retryExpirationSeconds

Gibt die Dauer an, nach der die exponentielle Wiederholung gestoppt wird. Standardmäßig auf -1 festgelegt. Das heißt, es gibt keinen Ablauf.

backoffCoefficient

Gibt den Koeffizienten an, der zur Berechnung des Wiederholungsintervalls verwendet wird. Siehe Exponentielle Wiederholungsstrategie.

maximumAttempts

Gibt die Anzahl der Versuche an, nach denen die exponentielle Wiederholung gestoppt wird. Standardmäßig auf -1 festgelegt. Das heißt, es gibt keine Begrenzung der Anzahl der Wiederholungsversuche.

exceptionsToRetry

Gibt die Liste der Ausnahmetypen an, die einen erneuten Versuch auslösen sollen. Unbehandelte Ausnahmen dieser Typen werden nicht weitergegeben. Die Methode wird nach dem berechneten Wiederholungsintervall erneut ausgeführt. Standardmäßig enthält die Liste Throwable.

excludeExceptions

Gibt die Liste der Ausnahmetypen an, die keinen erneuten Versuch auslösen sollen. Unbehandelte Ausnahmen dieses Typs dürfen weitergegeben werden. Die Liste ist standardmäßig leer.

@GetState

Bei Verwendung für eine Methode in einer mit der @Workflow-Annotation definierten Schnittstelle wird die Methode verwendet, um den letzten Status der Workflow-Ausführung abzurufen. Es kann in einer Schnittstelle mit der @Workflow-Annotation maximal eine Methode mit dieser Annotation geben. Methoden mit dieser Annotation dürfen keine Parameter entgegennehmen und müssen einen anderen Rückgabetyp als void haben.

@ManualActivityCompletion

Diese Annotation kann für eine Aktivitätsmethode verwendet werden. Sie definiert, dass die Aktivitätsaufgabe bei der Rückgabe aus der Methode nicht abgeschlossen werden soll. Die Aktivitätsaufgabe wird nicht automatisch abgeschlossen. Sie muss direkt über die Amazon SWF SWF-API manuell abgeschlossen werden. Dies ist für Anwendungsfälle hilfreich, in denen die Aktivitätsaufgabe an ein externes System delegiert wird und dieses nicht automatisiert ist oder ein menschliches Eingreifen erfordert.

@Signal

Identifiziert bei Verwendung für eine Methode in einer mit der @Workflow-Annotation definierten Schnittstelle ein Signal, das von Ausführungen des von der Schnittstelle deklarierten Workflowtyps empfangen werden kann. Die Verwendung dieser Annotation ist erforderlich, um eine Signalmethode zu definieren.

Die folgenden Parameter können über dieser Annotation angegeben werden:

name

Gibt den Namensteil des Signalnamens an. Wenn nicht festgelegt, wird der Name der Methode verwendet.

@SkipRegistration

Bei Verwendung für eine Schnittstelle, die mit der@WorkflowDiese Annotation gibt an, dass der Workflowtyp nicht bei Amazon SWF registriert werden soll. Für eine mit @Workflow definierte Schnittstelle muss die @WorkflowRegistrationOptions- oder @SkipRegistrationOptions-Annotationen verwendet werden. Es dürfen jedoch nicht beide verwendet werden.

@Wait und @NoWait

Diese Anmerkungen können für einen Parameter vom Typ verwendet werdenPromise<>um anzugeben, obAWS Flow Frameworkfür Java sollte vor der Ausführung einer Methode darauf warten, dass diese bereit ist. Standardmäßig müssen an die @Asynchronous-Methoden übergebene Promise<>-Parameter bereit sein, bevor die Methodenausführung erfolgt. In bestimmten Szenarien ist es notwendig, dieses Standardverhalten zu überschreiben. Promise<>-Parameter, die an @Asynchronous-Methoden übergeben und mit @NoWait-Annotationen versehen sind, werden nicht abgefragt.

Collection-Parameter (oder entsprechende Unterklassen) mit Zusagen wie List<Promise<Int>> müssen mit @Wait definiert werden. Standardmäßig wartet das Framework nicht auf die Mitglieder einer Collection.

@Workflow

Diese Annotation wird für eine Schnittstelle verwendet, um einen workflow-Typ zu deklarieren. Eine mit dieser Annotation ausgezeichnete Schnittstelle sollte genau eine Methode enthalten, die mit der @Execute-Annotation zur Deklaration des Einstiegspunkts für Ihren Workflow ausgezeichnet ist.

Anmerkung

Eine Schnittstelle kann nicht gleichzeitig die @Workflow- und @Activities-Annotationen verwenden. Sie schließen sich gegenseitig aus.

Die folgenden Parameter können über dieser Annotation angegeben werden:

dataConverter

Gibt an, welcher DataConverter beim Senden von Anforderungen an und beim Empfangen von Ergebnissen an/von Workflow-Ausführungen dieses Workflowtyps verwendet werden soll.

Der Standardwert ist NullDataConverter. Dieser greift auf JsonDataConverter zurück, um alle Request- und Response-Daten als JSON (JavaScript Object Notation) zu verarbeiten.

Beispiel

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

Bei Verwendung auf einer Schnittstelle, die mit kommentiert ist@Workflowbietet Standardeinstellungen an, die von Amazon SWF bei der Registrierung des Workflowtyps verwendet werden.

Anmerkung

Für eine mit @Workflow definierte Schnittstelle muss @WorkflowRegistrationOptions oder @SkipRegistrationOptions verwendet werden. Es können nicht beide verwendet werden.

Die folgenden Parameter können über dieser Annotation angegeben werden:

Description

Eine optionale kurze Textbeschreibung des Workflowtyps.

defaultExecutionStartToCloseTimeoutSeconds

Gibt dasdefaultExecutionStartToCloseTimeoutbei Amazon SWF für den Workflowtyp registriert. Dies ist die Gesamtzeit, die eine solche Workflow-Ausführung in Anspruch nehmen kann.

Weitere Informationen zu Workflow-Timeouts finden Sie unter Amazon SWF SWF-Zeitüberschreitungstypen .

defaultTaskStartToCloseTimeoutSeconds

Gibt dasdefaultTaskStartToCloseTimeoutbei Amazon SWF für den Workflowtyp registriert. Gibt an, wie lange eine einzelne Entscheidungsaufgabe für eine solche Workflow-Ausführung dauern kann.

Wenn Sie defaultTaskStartToCloseTimeout nicht angeben, wird die Standardeinstellung auf 30 Sekunden gesetzt.

Weitere Informationen zu Workflow-Timeouts finden Sie unter Amazon SWF SWF-Zeitüberschreitungstypen .

defaultTaskList

Die Standard-Aufgaben, die für Entscheidungsaufgaben für Ausführungen dieses Workflowtyps verwendet wird. Die hier festgelegte Voreinstellung kann beim Starten einer Workflow-Ausführung mit StartWorkflowOptions überschrieben werden.

Wenn Sie defaultTaskList nicht angeben, wird der Wert standardmäßig auf USE_WORKER_TASK_LIST festgelegt. Dies bedeutet, dass die Aufgabenliste des Workers verwendet werden soll, der die Workflow-Registrierung durchführt.

defaultChildPolicy

Gibt die Richtlinie an, die für untergeordnete Workflows verwendet werden soll, wenn eine Ausführung dieses Typs abgebrochen wird. Der Standardwert ist ABANDON. Die möglichen Werte sind:

  • ABANDON— Die untergeordneten Workflow-Ausführungen dürfen weiter ausgeführt werden

  • TERMINATE— Beenden von untergeordneten Workflow-Ausführungen

  • REQUEST_CANCEL— Abbrechen von untergeordneten Workflow-Ausführungen anfordern