Ich möchte verstehen, wann IRecordProcessor die ProcessRecords-Methode von Worker aufgerufen wird. Wenn mein früherer Aufruf von processRecords noch nicht abgeschlossen ist, wird der Worker die nächste processRecords aufrufen? Wird der Worker neue Datensätze von Kinesis abrufen oder wartet er bis zur Ausführung der aktuellen Datensätze?Kinesis Client Worker Logik
Grundsätzlich möchte ich für eine lange Zeit warten, wenn ProcessRecords eine Ausnahme beim Speichern von Datensätzen in externen db seit Db war down oder einen anderen Fehler erhalten. Wollen Sie also bestätigen, dass es kein Problem gibt, wenn der Worker nicht beginnt, neue Datensätze abzurufen, bevor die Verarbeitung abgeschlossen ist?
In worker.java, ruft runProcessLoop und dass es nennt shardConsumer.consumeShard() gibt es nennt checkAndSubmitNextTask(), dass es readyForNextTask prüft oder nicht. Wenn nicht, werden neue Datensätze nicht konsumiert. Also, wie ist es möglich, Worker ruft neue Datensätze ohne Recordprozessor-Prozess zuvor. – user1846749
Wenn auf Ihrer Seite ein vorübergehender Db-Ausfall vorliegt (der das Verbrauchen von Datensätzen verhindert); Sie sollten Ihre Kinesis Consumer Application stoppen, bis dies behoben ist. Oder es gibt einen zweiten Ansatz: Im letzten Link meiner Antwort gibt es eine Zeile, in der Ihre Frage erläutert wird: "Wenn es jedoch fehlschlägt, notieren Sie es an einem anderen Ort, um den Grund zu ermitteln, warum es fehlgeschlagen ist." - Sie können die Datensätze, die während des Ausfalls der Datenbank später benötigt werden, manuell verarbeiten. – az3