2017-01-09 7 views
0

Google App Engineのアプリケーションでcron.xmlで設定されたcronジョブがあります。
これらのジョブは、あるバージョンのアプリケーションで1日1回動作し、dbで作業します。
例えばcronジョブは、このアプリケーションインスタンスは、もは​​や正常に動作していないようにみえ数週間後v1.myapp.appspot.com ...GAEのcronジョブが予期せずシャットダウンする

を呼び出します。私は期待どおりにcronジョブを実行しません。

GAEダッシュボードでは、セクションにcronジョブのリストがありますが、そこに私のcronジョブは表示されません。

なぜ彼らはディサッパーでしたか?私の設定環境に何が問題なのですか?またはなぜgoogleが私のcronジョブの実行を停止するのですか?

+0

cronジョブが動作していたので、他のバージョンのアプリケーションや更新されたcronジョブを導入しましたか? –

+1

欠けているジョブのcron.xmlコンテンツの表示にも役立ちます –

+0

バックエンドインスタンスで実行している可能性もあります。ターゲットとバージョンを確認し、一致するバージョンとyamlファイル(app.yaml、cron.yaml、backend.yamlなど)をデプロイしてください。 – GAEfan

答えて

0

cronジョブの設定は、アプリケーション全体のスコープ設定です。特定のサービス/バージョンの設定ではありません。すべてのcronデプロイメント(必ずしもサービス/バージョンを更新せずに行うことができます)は、以前にデプロイされたものを上書きします。

偶発的なエラーを個人的に避けるために、私は必要に応じて各サービス内でシンボリックリンクされたアプリレベルで1つのcron設定ファイルを持っています。

古いバージョンのcronジョブを実行したままにしたい場合は、そのサービス/バージョンと一致するターゲットを持つ設定エントリを追加する必要があります。そうしないと、そのバージョンがデフォルトでなくなったときにcronジョブが機能しなくなります1(cronのトリガリクエストは、デフォルトのサービス/バージョンに向けられるように):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> 

目標仕様はオプションで、 サービス/バージョンの名前です。 。存在する場合、ターゲットはアプリケーションの ホスト名の前に付加され、ジョブはそのサービス/バージョンにルーティングされます。 ターゲットが指定されていない場合、ジョブはデフォルトの デフォルトサービスのバージョンで実行されます。

関連する問題