【发布时间】:2017-01-20 04:11:40
【问题描述】:
我有两个模块/服务,每个模块/服务都有一个 cron.xml。其中只有一个似乎运行过(根据我的经验是最近部署的),另一个没有失败,但端点从未被触发(从未出现在日志中)。
每个项目是否有 1-cron 限制?管理 cron 以使模块不交叉依赖的最佳方法是什么?
【问题讨论】:
我有两个模块/服务,每个模块/服务都有一个 cron.xml。其中只有一个似乎运行过(根据我的经验是最近部署的),另一个没有失败,但端点从未被触发(从未出现在日志中)。
每个项目是否有 1-cron 限制?管理 cron 以使模块不交叉依赖的最佳方法是什么?
【问题讨论】:
cron.yaml 是应用程序级配置文件,而不是服务/模块文件。这意味着当您在一个模块中部署一个模块时,它将覆盖另一个模块的 cron 配置。
因此,您必须创建一个单个 cron.yaml 文件,其中包含所有 服务/模块的作业配置。正如@GAEfan 提到的,您还需要为每个作业添加target 配置。您可能还需要添加一个dispatch.yaml 文件,并可能重新访问/调整请求路径,以便cron 作业发出的请求将其发送到正确的服务/模块。
部署应用程序级cron.yaml可能在部署服务时不会隐式发生,您可能需要显式部署它。从
Uploading cron jobs:
选项 2:仅上传您的 cron 更新
仅更新 cron 配置而不上传其余部分 应用程序,运行以下命令:
appcfg.py update_cron <app-directory>
一些或多或少相关的问答:
【讨论】:
在要发送到默认以外的模块的 cron 作业中使用 target: backend-module-name 参数。只需要一个cron.yaml。
确保更新:appcfg.py update app.yaml backend_module.yaml cron.yaml
【讨论】: