Облачные функции для Firebase срабатывают вовремя?
Я ищу способ запланировать облачные функции для Firebase или, другими словами, вызвать их в определенное время.
3 ответа
Пока нет встроенного триггера типа runat/cron.
На данный момент лучшим вариантом является использование внешнего сервиса для периодического запуска функции HTTP. См. Этот пример в репозитории functions-samples для получения дополнительной информации. Или используйте недавно представленный Google Cloud Scheduler для запуска облачных функций через PubSub или HTTPS:
Я также настоятельно рекомендую прочитать этот пост в блоге Firebase: " Как планировать (Cron) задания с облачными функциями для Firebase" и это видео: " Timing Cloud" для Firebase с использованием HTTP-триггеров и Cron.
Что вы можете сделать, это запустить экземпляр AppEngine, который запускается заданием cron и отправляется в PubSub. Я написал пост в блоге специально об этом, вы можете посмотреть:
https://mhaligowski.github.io/blog/2017/05/25/scheduled-cloud-function-execution.html
Сначала важно отметить, что часовой пояс по умолчанию, в котором будут выполняться ваши функции, - это America / Los_Angeles в соответствии с документацией . Вы можете найти список часовых поясов здесь , если вы хотите , чтобы вызвать вашу функцию (ы) на другой часовой пояс.
NB!!: Вот полезный веб-сайт, помогающий с форматами таблиц cron (я нашел его очень полезным)
Вот как вы это сделаете: (Предполагая, что вы хотите использовать Африку / Йоханнесбург в качестве часового пояса)
export const executeFunction = functions.pubsub.schedule("10 23 * * *")
.timeZone('Africa/Johannesburg').onRun(() => {
console.log("successfully executed at 23:10 Johannesburg Time!!");
});
В противном случае, если вы предпочитаете использовать значение по умолчанию:
export const executeFunction = functions.pubsub.schedule("10 23 * * *")
.onRun(() => {
console.log("successfully executed at 23:10 Los Angeles Time!!");
});