ไปที่คอนโซล

安排函数运行时间

如果您要安排函数在指定时间运行,请使用 functions.pubsub.schedule().onRun()。这种便捷方法会创建 Google Cloud Pub/Sub 主题并使用 Google Cloud Scheduler 触发与该主题相关的事件,从而确保您的函数在需要的时间运行。

准备工作

要在 Firebase 项目中使用此解决方案,您必须使用 Blaze 结算方案。如果您尚未使用 Blaze,请将您的帐号升级

虽然需要结算,但总费用是可控的,因为每个 Cloud Scheduler 作业每月费用为 0.10 美元,并且每个 Google 帐号可以享受三个免费作业的福利。您可以使用 Blaze 价格计算器来根据预计使用量估算费用。

您必须为您的项目启用 Google Cloud Pub/Sub API 和 Cloud Scheduler API。对于大多数 Firebase 项目而言,这些 API 应该已启用;您可以在 Google Cloud Platform Console 中验证这些 API 是否已启用。

编写预定函数

在 Cloud Functions for Firebase 中,预定逻辑位于您的函数代码中,没有特殊的部署时间要求。要创建预定函数,请使用 functions.pubsub.schedule('your schedule').onRun((context))。例如,要使用 AppEngine cron.yaml 语法每五分钟运行一次函数,请按如下所示编写相应代码:

exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
  console.log('This will be run every 5 minutes!');
});

Google Cloud Scheduler 支持 Unix Crontab 和 AppEngine 语法。例如,要使用 Crontab 选择在其中运行预定函数的特定时区,请按如下所示编写相应代码:

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!');
});

部署预定函数

在您部署预定函数时,系统会自动创建相关的调度程序作业和发布/订阅主题。Firebase CLI 会回显主题名称;您可以在 GCP Console 中查看作业和主题。系统会根据以下惯例为主题命名:

firebase-scheduled-function_name-region

例如:

firebase-scheduled-scheduledFunctionCrontab-us-east1。