2017-01-19 9 views
2

私は2つのモジュール/サービスを持っていて、それぞれにはcron.xmlがあります。これらのうちの1つだけが実行されているように見えますが、もう1つは失敗しませんが、エンドポイントは決してトリガーされません(ログには表示されません)。Cron per Service/Module(AppEngine)

プロジェクトあたり1 cronの制限がありますか?モジュールが相互依存しないようにcronを管理する最善の方法は何ですか?

答えて

2

cron.yamlは、アプリレベルの設定ファイルではなく、サービス/モジュールです。つまり、あるモジュールにあるものをデプロイすると、もう一方のモジュールからcronの設定を上書きします。

だから、すべてサービス/モジュールのジョブのconfigsを含む単一cron.yamlファイルを作成する必要があります。 @GAEファンが言及しているように、ジョブごとにtargetの設定を追加する必要もあります。 dispatch.yamlファイルを追加して、リクエストパスを再訪問/調整して、cronジョブ発行のリクエストが正しいサービス/モジュールになるようにする必要があります。

サービスレベルのデプロイcron.yamlサービスのデプロイ時に暗黙的に行われることはありません。明示的にデプロイする必要があります。 Uploading cron jobs から:

オプション2:

appcfg.py update_cron <app-directory> 

が の残りのアプリケーションをアップロードすることなく、ただのcron設定を更新するだけで、あなたのcronのアップデートをアップロードし、次のコマンドを実行します。

多かれ少なかれ関連Q & As:

1

default以外のモジュールに送信するcronジョブ内のtarget: backend-module-nameパラメータを使用します。 cron.yamlが1つだけ必要です。

アップデートを確認してください:appcfg.py update app.yaml backend_module.yaml cron.yaml