Se você quiser programar funções para execução em horários especificados, use o gerenciador onSchedule
para criar um tópico do Pub/Sub que use o Cloud Scheduler para acionar eventos nesse tópico.
Antes de você começar
Para usar esta solução em seu projeto Firebase, seu projeto deve estar no plano de preços Blaze. Se ainda não estiver no plano Blaze, atualize seu plano de preços .
Embora o faturamento seja necessário, você pode esperar que o custo geral seja gerenciável, já que cada trabalho do Cloud Scheduler custa US$ 0,10 (USD) por mês e há um limite de três trabalhos por conta do Google, sem nenhum custo. Use a calculadora de preços Blaze para gerar uma estimativa de custo com base no uso projetado.
As APIs Pub/Sub e Cloud Scheduler precisam estar ativadas para seu projeto. Eles já devem estar habilitados para a maioria dos projetos do Firebase; você pode verificar no console do Google Cloud Platform .
Escreva uma função agendada
No Cloud Functions para Firebase, a lógica de agendamento reside no código de funções, sem requisitos especiais de tempo de implantação. Para criar uma função agendada, 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 , faça algo assim:
exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
console.log('This will be run every 5 minutes!');
return null;
});
A sintaxe do Unix Crontab e do App Engine é compatível com o Cloud Scheduler. Por exemplo, para usar o Crontab para selecionar um fuso horário específico no qual executar uma função agendada, faça algo assim:
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
deve ser um nome de fuso horário do banco de dados tz . Consulte a referência do Cloud Scheduler para obter mais informações sobre as propriedades compatíveis.
Implantar uma função agendada
Ao implementar uma função agendada, o trabalho do agendador e o tópico de publicação/assinatura relacionados são criados automaticamente. A CLI do Firebase ecoa o nome do tópico, e você pode visualizar o trabalho e o tópico no Console do GCP . O tópico é nomeado de acordo com a seguinte convenção:
firebase-scheduled- function_name - region
Por exemplo:
firebase-scheduled-scheduledFunctionCrontab-us-east1.