Відповіді:
Оновлення 2019-04-18
Зараз існує дуже простий спосіб розгортати запланований код у хмарних функціях через Firebase.
Ви можете використовувати простий синтаксис тексту:
export scheduledFunctionPlainEnglish =
functions.pubsub.schedule('every 5 minutes').onRun((context) => {
console.log('This will be run every 5 minutes!');
})
Або більш гнучкий формат таблиці кронів:
export scheduledFunctionCrontab =
functions.pubsub.schedule('5 11 * * *').onRun((context) => {
console.log('This will be run every day at 11:05 AM UTC!');
});
Щоб дізнатися більше про це, див:
Зауважте, що ваш проект повинен мати план Blaze, щоб це працювало, тому я залишаю нижче альтернативні варіанти для довідки.
Якщо ви хочете запланувати одне виклик хмарної функції на затримку з виконання іншого тригера, ви можете використовувати хмарні завдання, щоб встановити це налаштування. Прочитайте цю статтю для розширеного прикладу того, як це може працювати.
Оригінальна відповідь нижче ...
Ще немає вбудованого тригера типу рунат / крон.
На даний момент найкращим варіантом є використання зовнішньої служби для періодичного запуску функції HTTP. Для отримання додаткової інформації дивіться цей зразок у репортажі зразків функцій . Або скористайтеся нещодавно представленим Google Cloud Scheduler для запуску хмарних функцій через PubSub або HTTPS:
Я також настійно рекомендую прочитати цю публікацію в блозі Firebase: Як скласти графік роботи (Cron) роботи з хмарними функціями для Firebase та це відео: Хмарні функції хмари для Firebase за допомогою тригера HTTP та Cron .
Це останнє посилання використовує cron-job.org для запуску функцій Cloud та працює для проектів, які мають вільний план. Зауважте, що це дозволяє будь-кому телефонувати без функції авторизації вашої функції, тому ви, можливо, захочете включити якийсь механізм захисту від зловживань у сам код.
Each Cloud Scheduler job costs $0.10 (USD) per month
якщо припустити, що "робота" не означає кожного разу, коли запланована річ, але вартість за таймер? тобто робота, яка працює щохвилини, коштує лише 0,10 долара? (за винятком усіх хмарних функцій, які вона викликає).
Що ви можете зробити, це запустити екземпляр AppEngine, який запускається завданням cron і випускається в PubSub. Я написав повідомлення в блозі саме про це, можливо, ви захочете поглянути:
https://mhaligowski.github.io/blog/2017/05/25/scheduled-cloud-function-execution.html
cron-job.org
що Джен розмовляє про це в дописі в блозі, це безкоштовно.