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

Google app engine 如何将GAE cron作业作为特定应用程序版本运行?,google-app-engine,cron,versioning,staging,Google App Engine,Cron,Versioning,Staging,最近,我开始在我的谷歌应用引擎项目中使用有限的登台。数据仍然在所有版本之间共享,但行为(尤其是面向用户的行为)是不同的 当然,当我实现一些难以置信的新东西时,它只在我的代码的最新版本上运行,我觉得不应该将它后移植到旧版本 有些新功能需要定期运行cron作业,但我遇到了一个问题。我必须运行cron作业来调用最新的代码,但这是谷歌文档中关于这个问题的说明: Cron requests are always sent to the default version of the application.

最近,我开始在我的谷歌应用引擎项目中使用有限的登台。数据仍然在所有版本之间共享,但行为(尤其是面向用户的行为)是不同的

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

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

Cron requests are always sent to the default version of the application.
默认版本是最早的,因为发送给用户的客户端代码的第一个版本不是未来的版本,并且不知道如何选择要调用的API版本


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

您不能将cron作业更改为在与默认版本不同的版本上运行

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


如果您是cron作业,运行时间超过10分钟,那么我会将其设计为使用任务队列链接不同任务的方式。

您现在可以使用目标标记指定版本

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

感谢您的想法,我制作了一个简单的API,作为元cron,只需在适当的应用程序版本上调用实际cronjob的url。在cron.yaml中,您可以添加行
target:2