如何将GAE cron作业作为特定应用程序版本运行?

时间:2011-02-06 14:32:33

标签: google-app-engine cron versioning staging

最近我开始在我的Google App Engine项目中使用有限的暂存。所有版本之间仍然共享数据,但行为(尤其是面向用户的行为)是不同的。

当我实现一些令人难以置信的新东西时,它只运行在我的代码的最新版本上,我觉得它不应该被移植到旧版本。

这些新功能中的一些需要定期运行cron作业,但我遇到了问题。我必须运行一个cron作业来调用最新的代码,但这就是Google的文档对此问题所说的话:

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

默认版本是最早的版本,因为发送给用户的客户端代码的第一个版本不是未来证明,也不知道如何选择要调用的API版本。

所以我的问题是,如何绕过这个限制并创建一个调用最新版本而不是默认版本的应用程序的cron作业?

2 个答案:

答案 0 :(得分:12)

您现在可以使用目标代码指定版本。

<target>version-2</target>

答案 1 :(得分:3)

您无法将cron作业更改为使用与默认版本不同的版本运行。

根据您的cron作业运行所花费的时间,您可以将您的cron作业脚本更改为“http://latest.appname.appspot.com/cron_job_endpoint”的URLFetch。

如果您的cron作业需要更长时间才能运行10分钟,那么我将以可以使用任务队列链接不同任务的方式进行设计。