ถ้าคุณต้องการตั้งเวลาให้ฟังก์ชันทำงานตามเวลาที่กำหนด ให้ใช้
เครื่องจัดการ onSchedule
เพื่อสร้าง
หัวข้อ Pub/Sub ที่ใช้
Cloud Scheduler เพื่อทริกเกอร์เหตุการณ์ใน
หัวข้อนั้น
ก่อนเริ่มต้น
หากต้องการใช้โซลูชันนี้ในโปรเจ็กต์ Firebase โปรเจ็กต์ของคุณต้องอยู่ใน แพ็กเกจราคา Blaze หากยังไม่ได้ใช้แพ็กเกจ Blaze อัปเกรดแพ็กเกจราคา
ถึงแม้ว่าจะจำเป็นต้องมีการเรียกเก็บเงิน แต่คุณก็ควรจัดการค่าใช้จ่ายโดยรวมได้ เช่น งาน Cloud Scheduler แต่ละงานมีราคา $0.10 (USD) ต่อเดือน และมี อนุญาตให้ใช้ได้ 3 งานต่อบัญชี Google 1 บัญชีโดยไม่มีค่าใช้จ่าย ใช้ Blaze เครื่องคำนวณราคา เพื่อสร้างค่าใช้จ่ายโดยประมาณ ตามการใช้งานที่คาดการณ์
ต้องเปิดใช้ API Pub/Sub และ Cloud Scheduler สำหรับ ควรเปิดใช้พารามิเตอร์เหล่านี้สำหรับโปรเจ็กต์ Firebase ส่วนใหญ่อยู่แล้ว คุณสามารถ ยืนยันในคอนโซล Google Cloud
เขียนฟังก์ชันที่กำหนดเวลาไว้
ใน Cloud Functions for Firebase ตรรกะการกำหนดเวลาจะอยู่ในโค้ดฟังก์ชัน
โดยไม่มีข้อกำหนดพิเศษเกี่ยวกับเวลาการทำให้ใช้งานได้ วิธีสร้างฟังก์ชันที่กำหนดเวลาไว้
ใช้ functions.pubsub.schedule('your schedule').onRun((context))
เช่น หากต้องการเรียกใช้ฟังก์ชันทุกๆ
5 นาทีกับ
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;
});
ทั้ง 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 หัวข้อ จะได้รับการสร้างขึ้นโดยอัตโนมัติ CLI ของ Firebase จะสะท้อนชื่อหัวข้อ คุณสามารถดูงานและหัวข้อใน คอนโซล Google Cloud ตั้งชื่อหัวข้อตามแบบแผนต่อไปนี้
firebase-scheduled-function_name-region
เช่น
firebase-scheduled-scheduledFunctionCrontab-us-east1