Para programar a execução de funções em horários especificados, use
o gerenciador onSchedule
para criar um tópico do
Pub/Sub que usa o
Cloud Scheduler para acionar eventos
no tópico.
Antes de começar
Para usar essa solução no seu projeto do Firebase, é preciso que o projeto esteja no plano de preços Blaze. Se ainda não estiver no plano Blaze, faça upgrade do seu plano de preços.
O faturamento é obrigatório, mas o custo geral é gerenciável, porque cada job do Cloud Scheduler custa US$ 0,10 (USD) por mês e há um crédito de três jobs por conta do Google, sem custo financeiro. Use a calculadora de preços do Blaze para gerar uma estimativa de custo com base na projeção de uso.
As APIs do Pub/Sub e do Cloud Scheduler precisam estar ativadas no projeto. Essas APIs já devem estar ativadas na maioria dos projetos do Firebase. Para verificar isso, acesse o console do Google Cloud.
Escrever uma função programada
No Cloud Functions for Firebase, a lógica de programação está no código das funções,
sem requisitos especiais de tempo de implantação. Para criar uma função programada,
use functions.pubsub.schedule('your schedule').onRun((context))
.
Por exemplo, para executar uma função a cada
cinco minutos com a
sintaxe cron.yaml do App Engine,
escreva um código semelhante a este:
exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
console.log('This will be run every 5 minutes!');
return null;
});
O Cloud Scheduler oferece suporte à sintaxe do Unix Crontab e do App Engine. Por exemplo, caso queira usar o Crontab para selecionar um fuso horário específico a fim de executar uma função planejada, escreva um código semelhante a este:
exports.scheduledFunctionCrontab = functions.pubsub.schedule('5 11 * * *')
.timeZone('America/New_York') // Users can choose timezone - default is America/Los_Angeles
.onRun((context) => {
console.log('This will be run every day at 11:05 AM Eastern!');
return null;
});
O valor de timeZone
precisa ser um nome de fuso horário do banco de dados tz . Consulte a
referência do Cloud Scheduler
para mais informações sobre as propriedades compatíveis.
Implantar uma função programada
Ao implantar uma função programada, o job do programador relacionado e o tópico do Pub/Sub são criados automaticamente. A CLI do Firebase reflete o nome do tópico, e é possível conferir o job e o tópico no console do Google Cloud. O nome do tópico é definido conforme a seguinte convenção:
firebase-scheduled-function_name-region
Exemplo:
firebase-scheduled-scheduledFunctionCrontab-us-east1.