Google app engine 避免覆盖谷歌应用程序引擎上的cron作业
我正在使用google app engine,有两个应用程序使用cron作业来安排事件。我可以使用Google app engine 避免覆盖谷歌应用程序引擎上的cron作业,google-app-engine,cron,Google App Engine,Cron,我正在使用google app engine,有两个应用程序使用cron作业来安排事件。我可以使用gcloud app deploy app.yaml cron.yaml部署这两个应用程序。即使两个应用程序都已部署并工作,但只有一个cron作业实际运行。这就是文件的外观 第一个cron.yaml cron: - description: "GET first group" url: / schedule: every 5 minutes target: pubsubone cron
gcloud app deploy app.yaml cron.yaml
部署这两个应用程序。即使两个应用程序都已部署并工作,但只有一个cron作业实际运行。这就是文件的外观
第一个cron.yaml
cron:
- description: "GET first group"
url: /
schedule: every 5 minutes
target: pubsubone
cron:
- description: "GET second group"
url: /
schedule: every 5 minutes
target: pubsubtwo
第二个cron.yaml
cron:
- description: "GET first group"
url: /
schedule: every 5 minutes
target: pubsubone
cron:
- description: "GET second group"
url: /
schedule: every 5 minutes
target: pubsubtwo
这些文件位于不同的文件夹中,并与不同的应用程序关联。这可能是您失败的几个原因,如果您使用
/
以外的内容作为url,则可以更轻松地进行分类<代码>/cron,也许吧。这将使查看日志时更容易确定url是否按预期调用
接下来是
目标
。如果没有活动应用程序版本的指定值作为其版本(或服务,尽管我没有这方面的经验),那么,cron
生成的请求将被丢弃。当您使用新的cron.yaml
文件部署第二个服务时,第一个cron作业被覆盖,因为部署只需要一个cron.yaml
。要同时部署两个cron作业,请将它们合并到一个文件中,如示例所示,然后部署生成的cron.yaml
文件,如图所示。cron.yaml
应该如下所示:
cron:
- description: "GET first group"
url: /
schedule: every 5 minutes
target: pubsubone
- description: "GET second group"
url: /
schedule: every 5 minutes
target: pubsubtwo
部署它的命令行是:
$ gcloud app deploy cron.yaml
注意:同一GAE应用程序(项目)中没有2个不同的应用程序,但有2个不同的服务/模块,并且cron配置是应用程序中所有服务共享的应用程序级配置。