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

หากคุณต้องการฟังก์ชั่นตารางการทำงานในเวลาที่ระบุการใช้ functions.pubsub.schedule().onRun() วิธีการความสะดวกสบายนี้จะสร้าง ผับ / ตำบล หัวข้อและใช้ ระบบคลาวด์จัดตารางเวลา การทริกเกอร์เหตุการณ์ในหัวข้อที่มั่นใจว่าฟังก์ชั่นการทำงานของคุณบน กำหนดการที่ต้องการ

ก่อนจะเริ่ม

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

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

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

Firebase-scheduled- function_name - region

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

firebase-scheduled-scheduledFunctionCrontab-us-east1