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

Swi*_*ler 5 versioning cron google-app-engine staging

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

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

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

Cron requests are always sent to the default version of the application.
Run Code Online (Sandbox Code Playgroud)

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

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

小智 12

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

<target>version-2</target>
Run Code Online (Sandbox Code Playgroud)

  • 在cron.yaml中,您可以添加行`target:2` (2认同)

小智 3

您无法将 cron 作业更改为在默认版本之外的版本上运行。

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

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