

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 Framework für Java Replay Behavior
<a name="programming-replay"></a>

In diesem Thema werden Beispiele für Replay-Verhalten unter Verwendung von Beispielen im Abschnitt [Was ist das AWS Flow Framework für Java?](welcome.md) erläutert. Sowohl [synchrone](#programming-replay-synchronous) als auch [asynchrone](#programming-replay-asynchronous) Szenarien werden behandelt.

## Beispiel 1: Synchrones Replay
<a name="programming-replay-synchronous"></a>

Ein Beispiel dafür, wie die Wiedergabe in einem synchronen Workflow funktioniert, finden Sie, indem Sie die [HelloWorldWorkflow](getting-started-example-helloworldworkflow.md)Workflow- und Aktivitätsimplementierungen wie folgt ändern, indem Sie innerhalb der jeweiligen Implementierungen `println` Aufrufe hinzufügen:

```
public class GreeterWorkflowImpl implements GreeterWorkflow {
...
   public void greet() {
      System.out.println("greet executes");
      Promise<String> name = operations.getName();
      System.out.println("client.getName returns");
      Promise<String> greeting = operations.getGreeting(name);
      System.out.println("client.greeting returns");
      operations.say(greeting);
      System.out.println("client.say returns");
   }
}
**************
public class GreeterActivitiesImpl implements GreeterActivities {
   public String getName() {
      System.out.println("activity.getName completes");
      return "World";
   }

   public String getGreeting(String name) {
      System.out.println("activity.getGreeting completes");
      return "Hello " + name + "!";
   }

   public void say(String what) {
      System.out.println(what);
   }
}
```

Details zum Code finden Sie unter [HelloWorldWorkflow Bewerbung](getting-started-example-helloworldworkflow.md). Im Folgenden sehen Sie eine bearbeitete Version der Ausgabe mit Kommentaren, die den Start jedes Replay-Abschnitts angeben.

```
//Episode 1
greet executes
client.getName returns
client.greeting returns
client.say returns

activity.getName completes
//Episode 2
greet executes
client.getName returns
client.greeting returns
client.say returns

activity.getGreeting completes
//Episode 3
greet executes
client.getName returns
client.greeting returns
client.say returns

Hello World! //say completes
//Episode 4
greet executes
client.getName returns
client.greeting returns
client.say returns
```

Der Replay-Prozess für dieses Beispiel funktioniert wie folgt:
+ Im ersten Abschnitt wird die `getName`-Aktivitätsaufgabe geplant, die keine Abhängigkeiten hat.
+ Im zweiten Abschnitt wird die `getGreeting`-Aktivitätsaufgabe geplant, die von `getName` abhängt.
+ Im dritten Abschnitt wird die `say`-Aktivitätsaufgabe geplant, die von `getGreeting` abhängt.
+ Im letzten Abschnitt werden keine zusätzlichen Aufgaben geplant und keine nicht abgeschlossenen Aktivitäten gefunden, wodurch die Workflow-Ausführung beendet wird. 

**Anmerkung**  
Die drei Aktivitäten-Client-Methoden werden einmal für jeden Abschnitt aufgerufen. Allerdings ergibt sich nur aus einem dieser Aufrufe eine Aktivitätsaufgabe, sodass jede Aufgabe nur einmal durchgeführt wird.

## Beispiel 2: Asynchrones Replay
<a name="programming-replay-asynchronous"></a>

Ähnlich wie im [Beispiel für synchrones Replay](#programming-replay-synchronous) können Sie [HelloWorldWorkflowAsync Bewerbung](getting-started-example-helloworldworkflowasync.md) ändern, um zu sehen, wie ein asynchrones Replay funktioniert. Es erzeugt folgende Ausgabe:

```
//Episode 1
greet executes
client.name returns
workflow.getGreeting returns
client.say returns

activity.getName completes
//Episode 2
greet executes
client.name returns
workflow.getGreeting returns
client.say returns
workflow.getGreeting completes

Hello World! //say completes
//Episode 3
greet executes
client.name returns
workflow.getGreeting returns
client.say returns
workflow.getGreeting completes
```

HelloWorldAsync verwendet drei Wiederholungsepisoden, da es nur zwei Aktivitäten gibt. Die `getGreeting`-Aktivität wurde durch die asynchrone Workflow-Methode *getGreeting* ersetzt, die keinen Replay-Abschnitt initiiert, wenn sie abgeschlossen wird.

Der erste Abschnitt ruft `getGreeting` nicht auf, da er vom Abschluss der Aktivität *name* abhängt. Aber nachdem *getName* abgeschlossen wurde, ruft Replay *getGreeting* einmal für jeden nachfolgenden Abschnitt auf.

## Weitere Informationen finden Sie unter:
<a name="see-also"></a>
+ [AWS Flow Framework Grundbegriffe: Verteilte Ausführung](awsflow-basics-distributed-execution.md)