Antwort

2

AFAIK gibt es keine Funktion, dies zu tun. Eine Problemumgehung wurde jedoch in der forum für eine ähnliche Frage vorgeschlagen.

Eine Idee ist, Batch als Aktivität von Step-Funktionen aufzurufen, pingback auf einen Zeitplan zurück (zum Beispiel jede Minute) von diesem Job. Wenn es stoppt reagiert dann können Sie diese Situation als Timeout in der Aktivität erkennen und entsprechend handeln (den Job usw. zu beenden). Keine ideale Lösung (vor allem, wenn der Job weiterhin als "Zombie" pingt), aber es ist ein Anfang. Wahrscheinlich müssen Sie auch Aktivitätstokens in einer -Datenbank speichern, um sie auf die Batch-Job-ID zu verfolgen.

Alternativ Du, dass das Setup in zwei Schritte aufgeteilt, und legen Sie eine Batch Auftrag von einem Lambda im ersten Zustand, übergeben Sie den Batch-Job-ID den zweiten Schritt der dann Batch Urnen (von einem anderen Lambda) für seine Status mit Retry und IntervalSeconds (z. B. einmal pro Minute oder sogar mit exponentiellem Backoff) und MaxAttempts basierend auf Ihrem Timeout berechnet. Auf diese Weise brauchen Sie keinen externen Speicher Mechanismus, lange Polling oder sogar ein "Ping-Back" aus dem Job (es kann ein Zombie sein), aber der Nachteil ist mehr Schritte.

1

Es gibt keine Option timeout auf Batch-Job zu setzen, sondern Sie können Setup eine Lambda-Funktion, die vor 24 hours sagen erstellt alle 1 Stunde oder so und löscht Jobs auslöst.

1

arbeitet seit einiger Zeit mit aws und konnte keine Möglichkeit finden, eine maximale Laufzeit für Stapeljobs festzulegen. Allerdings gibt es einige alternative Möglichkeiten, die Sie nutzen könnten. AWS Forum

1

Leider ist es nicht möglich, die Ausführungszeit für den Grenzwert für AWS Batch festzulegen. Eine Lösung besteht möglicherweise darin, den Einstiegspunkt des Andockfensters zu bearbeiten, um das Ausführungszeitlimit zu planen.

Verwandte Themen