Google 致力于为黑人社区推动种族平等。查看具体举措
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

排程功能

如果要安排函數在指定時間運行,請使用functions.pubsub.schedule().onRun()此便捷方法創建一個Pub / Sub主題,並使用Cloud Scheduler觸發該主題上的事件,以確保函數在以下時間運行所需的時間表。

在你開始之前

要在Firebase項目中使用此解決方案,您的項目必須在Blaze定價計劃中。如果尚未在Blaze計劃中,請升級您的定價計劃

儘管需要計費,但您可以期望總體成本是可控的,因為每個Cloud Scheduler作業每月的費用為$ 0.10(USD),每個Google帳戶可以提供三個免費作業。使用Blaze定價計算器可根據您的預計使用量生成成本估算。

必須為您的項目啟用發布/訂閱和Cloud Scheduler API。大多數Firebase項目應已啟用這些功能。您可以在Google Cloud Platform Console中進行驗證。

編寫預定的函數

在Firebase的Cloud Functions中,調度邏輯駐留在您的函數代碼中,而沒有特殊的部署時間要求。要創建計劃功能,請使用functions.pubsub.schedule('your schedule').onRun((context)) 。例如,要使用App Engine cron.yaml語法每五分鐘運行一次函數,請執行以下操作:

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

Cloud Scheduler支持Unix Crontab和App Engine語法。例如,要使用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!');
  return null;
});

timeZone的值必須是tz數據庫中的時區名稱。有關受支持屬性的更多信息,請參見《 Cloud Scheduler參考》。

部署預定功能

部署計劃的功能時,將自動創建相關的計劃程序作業和pub / sub主題。 Firebase CLI回顯主題名稱,您可以在GCP控制台中查看作業和主題。該主題是根據以下約定命名的:

firebase-scheduled- function_name region

例如:

firebase-scheduled-scheduledFunctionCrontab-us-east1。