2011-02-06 13 views
5

最近、Google App Engineプロジェクトで限られたステージングを使用し始めました。データは引き続きすべてのバージョンで共有されますが、動作(特にユーザー向きの動作)は異なります。GAE cronジョブを特定のアプリケーションバージョンとして実行するにはどうすればよいですか?

当然私は信じられないほど新しいものを実装すると、私のコードの最新バージョンでしか動作せず、古いバージョンにバックポートされるべきではないと思います。

この新しい機能のいくつかは、cronジョブを定期的に実行する必要がありますが、問題が発生します。私は、最新のコードを呼び出すためにcronジョブを実行する必要がありますが、これは、Googleのドキュメントは、問題について言いたいことです:

Cron requests are always sent to the default version of the application. 

デフォルトのバージョンが最も古い出て行ったクライアントコードの最初のバージョンであるため将来の証明ではなく、どのAPIバージョンを呼び出すかを選択する方法も知られていませんでした。

私の質問は、この制限を回避し、アプリケーションのデフォルトバージョンではなく最新のものを呼び出すcronジョブを作成するにはどうすればよいですか。

答えて

3

cronジョブは、デフォルト以外のバージョンで実行するように変更することはできません。

cronジョブの実行時間に応じて、「http://latest.appname.appspot.com/cron_job_endpoint」へのURLFetchを実行するようにcronジョブスクリプトを変更することができます。

あなたがcronジョブを実行するのに10分以上かかる場合は、タスクキューを使用してさまざまなタスクを連鎖できるように設計します。

+0

アイデアをお寄せいただきありがとうございます。私はメタクローンとして機能し、適切なアプリケーションバージョンで実際のcronjobのURLを呼び出している単純なAPIを作成しました。 –

12

ターゲットタグを使用してバージョンを指定できるようになりました。

<target>version-2</target> 
+2

cron.yamlでは、 'target:2'行を追加できます – hamx0r

関連する問題