【问题标题】:Cron per Service/Module (AppEngine)每个服务/模块的 Cron (AppEngine)
【发布时间】:2017-01-20 04:11:40
【问题描述】:

我有两个模块/服务,每个模块/服务都有一个 cron.xml。其中只有一个似乎运行过(根据我的经验是最近部署的),另一个没有失败,但端点从未被触发(从未出现在日志中)。

每个项目是否有 1-cron 限制?管理 cron 以使模块不交叉依赖的最佳方法是什么?

【问题讨论】:

    标签: google-app-engine


    【解决方案1】:

    cron.yaml 是应用程序级配置文件,而不是服务/模块文件。这意味着当您在一个模块中部署一个模块时,它将覆盖另一个模块的 cron 配置。

    因此,您必须创建一个单个 cron.yaml 文件,其中包含所有 服务/模块的作业配置。正如@GAEfan 提到的,您还需要为每个作业添加target 配置。您可能还需要添加一个dispatch.yaml 文件,并可能重新访问/调整请求路径,以便cron 作业发出的请求将其发送到正确的服务/模块。

    部署应用程序级cron.yaml可能在部署服务时不会隐式发生,您可能需要显式部署它。从 Uploading cron jobs:

    选项 2:仅上传您的 cron 更新

    仅更新 cron 配置而不上传其余部分 应用程序,运行以下命令:

    appcfg.py update_cron <app-directory>
    

    一些或多或少相关的问答:

    【讨论】:

      【解决方案2】:

      在要发送到默认以外的模块的 cron 作业中使用 target: backend-module-name 参数。只需要一个cron.yaml

      确保更新:appcfg.py update app.yaml backend_module.yaml cron.yaml

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-11-06
        • 2011-08-01
        • 2011-05-30
        • 1970-01-01
        • 2015-09-09
        • 2017-05-17
        • 2018-06-09
        相关资源
        最近更新 更多