如何重用cron.yaml中的配置?

时间:2018-11-02 07:43:34

标签: google-app-engine

我有很多具有相同配置的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作业都具有相同的targetschedule。我该如何解决?谢谢。

更新

我有一条这样的路线来获取每个cron网址的参数:

app.get('/cron/events/:topic/:retryTopic', (req, res) => {
  console.log(req.params); // {topic: 'a', retryTopic: 'b'}
})

1 个答案:

答案 0 :(得分:1)

您可以将所有这些cron条目包装到一个名为“每小时任务”或“每日任务”的条目中,然后请求处理程序便可以通过任务队列启动所有这些任务。

这也将帮助您保持在您允许执行的cron任务总数的上限以下

https://cloud.google.com/appengine/docs/standard/python/config/cronref#limits

  

免费应用程序最多可以包含20个计划任务。付费应用程序最多可以安排250个预定任务。