Планирование запуска задания каждые 2 секунды в GCP Cloud Scheduler - PullRequest
0 голосов
/ 23 апреля 2019

Мое приложение размещено в firebase. Это угловое приложение с базой данных пожарных. В настоящее время у меня есть сценарий, в котором мне нужно проверить, истек ли срок действия чего-либо, а затем принять меры. Для этого у меня в настоящее время есть приложение узла, работающее в обработчике приложений, у которого запланировано задание cron, которое запускается каждые 2 секунды, чтобы опросить базу данных firestore для коллекции и посмотреть, не устарело ли время истечения, чем текущее время, и затем оно выполняет запланированное задача.

cron.schedule("*/2 * * * * *", fn => {
   // code here for intended task
}

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

Но степень детализации облачного планировщика составляет только до каждой 1 минуты, и я ищу степень детализации в секундах, чтобы можно было планировать выполнение задания каждые 2 секунды. Есть ли способ, которым я могу достичь этого без необходимости размещать приложение на движке приложения.

1 Ответ

1 голос
/ 23 апреля 2019

Опрос в целом довольно расточительный, если вообще возможно попытаться заменить его на что-то лучшее.

В вашем случае, например, как только будет установлено время истечения, вы также можете определить точное времякогда предполагаемое задание должно быть выполнено (т.е. момент, когда вы пытаетесь определить с помощью опроса).

В ядре приложения (стандартная среда 1-го поколения) я бы просто поставил задачу в качестве элемента очереди отложенных задач.Как абсолютное значение, так и относительно текущего времени.Нет необходимости в опросе, задача будет выполняться всякий раз, когда приходит ее eta.

Я не знаком с angular / firebase, но мне кажется, что API службы угловых задач довольнопохоже.

...