2017-01-09 8 views
0

Ich habe einige Cron-Jobs in cron.xml in einer Anwendung in Google App Engine konfiguriert.
Diese Jobs arbeiten einmal am Tag auf einer Version meiner Anwendung und machen etwas Arbeit auf der db.
Zum Beispiel ein Cron-Job ruft v1.myapp.appspot.com ...GAE Cron-Job wird unerwartet heruntergefahren

Nach einigen Wochen diese Anwendungsinstanz scheint nicht mehr korrekt funktioniert. Es führt die Cron-Jobs nicht wie erwartet aus.

Auf GAE Dashboard fand ich einen Abschnitt mit einer Liste von Cron-Job, aber ich kann meine Cron-Jobs dort nicht sehen.

Warum haben sie disapperiert? Was ist falsch an meiner Konfigurationsumgebung? oder Warum stoppt Google die Ausführung meiner Cron-Jobs?

+0

Haben Sie eine andere Version der App oder aktualisierte Cron-Jobs bereitgestellt, seit dieser Cron-Job funktioniert hat? –

+1

Kann auch helfen, den Inhalt von cron.xml für die fehlenden Jobs anzuzeigen –

+0

Es kann auch sein, dass Sie es in einer Backend-Instanz ausführen. Überprüfen Sie Ihr Ziel und Versionen, und stellen Sie übereinstimmende Versionen und yaml-Dateien bereit (app.yaml, cron.yaml, backend.yaml, etc.) – GAEfan

Antwort

0

Die Cron-Jobkonfiguration ist eine appweite Scope-Konfiguration, es handelt sich nicht um eine Konfiguration eines bestimmten Service/Version. Jede Cron-Bereitstellung (die durchgeführt werden kann, ohne einen Dienst/eine Version zu aktualisieren) überschreibt den zuvor bereitgestellten Dienst.

Um versehentliche Fehler persönlich zu vermeiden, habe ich eine einzelne Cron-Konfigurationsdatei auf der App-Ebene, die bei Bedarf in jedem Dienst symbolisiert wird.

Wenn Sie den Cron-Job für eine ältere Version beibehalten möchten, müssen Sie einen Konfigurationseintrag mit einem Ziel für diesen Service/Version hinzufügen, sonst funktioniert der Cron-Job nicht mehr, wenn diese Version nicht mehr der Standard ist ein (wie die cron-triggered Anfragen werden auf den Standard gerichtet Service/Version):

von Creating a cron job:

<?xml version="1.0" encoding="UTF-8"?> 
<cronentries> 
    <cron> 
    <url>/tasks/summary</url> 
    <target>beta</target> 
    <description>daily summary job</description> 
    <schedule>every 24 hours</schedule> 
    </cron> 
</cronentries> 

die Zielspezifikation ist optional und ist der Name einer Service/Version . Falls vorhanden, wird das Ziel dem Hostnamen Ihrer App vorangestellt , wodurch der Job an diesen Service/diese Version weitergeleitet wird. Wenn kein Ziel angegeben ist, wird der Job in der Standardversion des Standarddiensts ausgeführt.

Verwandte Themen