2011-02-06 79 views
5

最近我开始在我的Google App Engine项目中使用有限的分段。数据仍然在所有版本之间共享,但行为(特别是面向用户的行为)是不同的。如何将GAE cron作业作为特定的应用程序版本运行?

当然,当我实现了令人难以置信的新功能时,它只能运行在我的代码的最新版本上,我不觉得它应该回溯到旧版本。

这些新功能中的一部分需要定期运行cron作业,但是我遇到了问题。我要运行一个cron作业来调用最新的代码,但是这是谷歌的文档中有关于这个问题:

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

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

所以我的问题是,我怎样才能解决这个限制,并做出一个cron作业,将调用最新的应用程序的默认版本?

回答

3

您不能将cron作业更改为在不同的版本上运行,然后使用默认设置。

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

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

+0

感谢这个想法,我做了一个简单的API,充当meta-cron,并简单地调用相应应用程序版本上的实际cronjob的url。 – 2011-02-07 01:07:13

12

您现在可以使用目标标签指定一个版本。

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

在cron.yaml中,你可以添加'target:2`这一行 – hamx0r 2015-12-01 14:30:21