Как настроить cron.yaml для нескольких заданий cron с одним и тем же обработчиком? - PullRequest
0 голосов
/ 30 октября 2018

Вот мой cron.yaml:

cron:
  - description: 'cron trigger create email'
    url: /cron/events/createEmail
    schedule: every 1 hours
    target: cron-jobs-background-cloud-function
  - description: 'cron trigger create user'
    url: /cron/events/createUser
    schedule: every 1 hours
    target: cron-jobs-background-cloud-function

server.js:

function taskHandler() {}

app.get('/cron/events/createEmail', (req, res) => {
  const topicName = req.path.split('/').slice(-1)[0];
  console.log('topicName: ', topicName);
  taskHandler(topicName);
  res.sendStatus(200);
});

app.get('/cron/events/createUser', (req, res) => {
  const topicName = req.path.split('/').slice(-1)[0];
  console.log('topicName: ', topicName);
  taskHandler(topicName);
  res.sendStatus(200);
});

И cron.yaml, и server.js, они дублируются.

Поддерживает ли cron service шаблон пути следующим образом:

cron.yaml

cron:
  - description: 'cron-jobs-background-cloud-function'
    url: /cron/events/*
    schedule: every 1 hours
    target: cron-jobs-background-cloud-function

server.js

app.get('/cron/events/*', (req, res) => {
  const topicName = req.path.split('/').slice(-1)[0];
  console.log('topicName: ', topicName);
  taskHandler(topicName);
  res.sendStatus(200);
});

1 Ответ

0 голосов
/ 30 октября 2018

Я подозреваю, что вы не можете использовать подстановочные знаки в cron.yaml, но вы можете использовать их в app.yaml, и это должно достичь того, что вы хотели бы сделать.

Держите cron.yaml так:

cron:
  - description: 'cron trigger create email'
    url: /cron/events/createEmail
    schedule: every 1 hours
    target: cron-jobs-background-cloud-function
  - description: 'cron trigger create user'
    url: /cron/events/createUser
    schedule: every 1 hours
    target: cron-jobs-background-cloud-function

Настройте app.yaml так:

handlers:
- url: /cron/events/*
  script: [PATH TO APP]

И тогда вы можете использовать один обработчик для всех ваших заданий cron, как у вас в вопросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...