Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

ฟังก์ชั่นกำหนดการ

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

หากคุณต้องการกำหนดเวลาให้ฟังก์ชันทำงานตามเวลาที่กำหนด ให้ใช้ 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 for Firebase ตรรกะการตั้งเวลาจะอยู่ในโค้ดฟังก์ชันของคุณ โดยไม่มีข้อกำหนดพิเศษด้านเวลาในการทำให้ใช้งานได้ ในการสร้างฟังก์ชันตามกำหนดการ ให้ใช้ 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 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคุณสมบัติที่รองรับ

ปรับใช้ฟังก์ชันที่กำหนดเวลาไว้

เมื่อคุณปรับใช้ฟังก์ชันที่กำหนดเวลาไว้ งานตัวกำหนดตารางเวลาที่เกี่ยวข้องและหัวข้อผับ/ย่อยจะถูกสร้างขึ้นโดยอัตโนมัติ Firebase CLI สะท้อนชื่อหัวข้อ และคุณสามารถดูงานและหัวข้อใน คอนโซล GCP หัวข้อนี้ตั้งชื่อตามแบบแผนต่อไปนี้:

firebase-scheduled- function_name - region

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

firebase-scheduled-scheduledFunctionCrontab-us-east1