Cron per Service / Module(AppEngine)

时间:2017-01-19 14:56:03

标签: google-app-engine

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

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

2 个答案:

答案 0 :(得分:2)

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

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

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

  

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

     

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

appcfg.py update_cron <app-directory>

或多或少相关的Q&amp; As:

答案 1 :(得分:1)

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

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