【问题标题】:How to run GAE cron jobs as specific app version?如何将 GAE cron 作业作为特定的应用程序版本运行?
【发布时间】:2011-06-22 06:47:32
【问题描述】:

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

当我实现一些令人难以置信的新东西时,它自然只能在我的代码的最新版本上运行,我不认为它应该向后移植到旧版本。

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

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

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

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

【问题讨论】:

    标签: google-app-engine cron versioning staging


    【解决方案1】:

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

    <target>version-2</target>
    

    【讨论】:

    • 在cron.yaml中,可以添加target: 2这一行
    【解决方案2】:

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

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

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

    【讨论】:

    • 感谢您的想法,我制作了一个简单的 API,它充当元 cron,并在适当的应用程序版本上简单地调用实际 cronjob 的 url。
    猜你喜欢
    • 2014-11-11
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多