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 เพื่อสร้างประมาณการต้นทุนตามการใช้งานที่คาดการณ์ไว้ของคุณ

ต้องเปิดใช้ Pub / Sub และ Cloud Scheduler API สำหรับโปรเจ็กต์ของคุณ ควรเปิดใช้สิ่งเหล่านี้สำหรับโครงการ Firebase ส่วนใหญ่แล้ว คุณสามารถยืนยันได้ใน คอนโซล Google Cloud Platform

เขียนฟังก์ชันตามกำหนดเวลา

ใน Cloud Functions สำหรับ Firebase ตรรกะการตั้งเวลาจะอยู่ในโค้ดฟังก์ชันของคุณโดยไม่มีข้อกำหนดพิเศษเกี่ยวกับเวลาในการปรับใช้ ในการสร้างฟังก์ชันตามกำหนดเวลาให้ใช้ functions.pubsub.schedule('your schedule').onRun((context)) ตัวอย่างเช่นหากต้องการเรียกใช้ฟังก์ชันทุกๆห้านาทีด้วยไวยากรณ์ cron.yaml ของ App Engine ให้ทำสิ่งนี้:

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

ทั้งไวยากรณ์ Unix Crontab และ App Engine รองรับโดย Cloud Scheduler ตัวอย่างเช่นหากต้องการใช้ 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 Console หัวข้อนี้ได้รับการตั้งชื่อตามหลักการดังต่อไปนี้:

firebase-Scheduled- function_name - region

ตัวอย่างเช่น:

firebase- กำหนดตารางเวลาฟังก์ชั่น frontab-us-east1.