我有很多具有相同配置的cron作业。我想使用vars
重用一些配置。
这是我的尝试。
cron.yaml
:
cron:
- description: 'a'
url: /cron/events/a/b
schedule: &schedule every 1 hours
target: &target reuse-cron-config
- description: 'b'
url: /cron/events/a/c
schedule: *schedule
target: *target
但是当我运行gcloud app deploy ./cron.yaml
时。抛出错误:
ERROR: (gcloud.app.deploy) An error occurred while parsing file: [/Users/ldu020/workspace/nodejs-gcp/src/app-engine/standard-environment/reuse-cron-config/cron.yaml]
Anchors not supported in this handler
in "/Users/ldu020/workspace/nodejs-gcp/src/app-engine/standard-environment/reuse-cron-config/cron.yaml", line 4, column 15
我所有的cron作业都具有相同的target
和schedule
。我该如何解决?谢谢。
更新
我有一条这样的路线来获取每个cron网址的参数:
app.get('/cron/events/:topic/:retryTopic', (req, res) => {
console.log(req.params); // {topic: 'a', retryTopic: 'b'}
})
答案 0 :(得分:1)
您可以将所有这些cron条目包装到一个名为“每小时任务”或“每日任务”的条目中,然后请求处理程序便可以通过任务队列启动所有这些任务。
这也将帮助您保持在您允许执行的cron任务总数的上限以下
https://cloud.google.com/appengine/docs/standard/python/config/cronref#limits
免费应用程序最多可以包含20个计划任务。付费应用程序最多可以安排250个预定任务。