Nếu bạn muốn lên lịch cho các hàm chạy vào thời điểm cụ thể, hãy sử dụng
trình xử lý onSchedule để tạo một
Pub/Sub chủ đề sử dụng
Cloud Scheduler nhằm kích hoạt các sự kiện trên
chủ đề đó.
Trước khi bắt đầu
Mặc dù các hàm theo lịch biểu sẽ bị tính phí, nhưng bạn có thể yên tâm rằng chi phí tổng thể sẽ nằm trong tầm kiểm soát, vì mỗi Cloud Scheduler công việc có giá 0,10 USD/tháng và bạn được phép sử dụng miễn phí 3 công việc cho mỗi Tài khoản Google. Hãy sử dụng công cụ tính giá Blaze để tạo ước tính chi phí dựa trên mức sử dụng dự kiến của bạn.
Bạn phải bật API Pub/Sub và Cloud Scheduler cho dự án của mình. Các API này sẽ được bật cho hầu hết các dự án Firebase; bạn có thể xác minh trong bảng điều khiển Cloud.
Viết hàm theo lịch biểu
Trong Cloud Functions for Firebase, logic lập lịch nằm trong mã hàm của bạn,
mà không có yêu cầu đặc biệt nào về thời gian triển khai. Để tạo một hàm theo lịch biểu,
hãy sử dụng functions.pubsub.schedule('your schedule').onRun((context)).
Ví dụ: để chạy một hàm 5 phút một lần bằng cú pháp cron.yaml của App Engine hãy làm như sau:
exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
console.log('This will be run every 5 minutes!');
return null;
});
Cloud Scheduler hỗ trợ cả cú pháp Unix Crontab và App Engine syntax .Cloud Scheduler Ví dụ: để sử dụng Crontab nhằm chọn một múi giờ cụ thể để chạy một hàm theo lịch biểu, hãy làm như sau:
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;
});
Giá trị của timeZone phải là tên múi giờ trong
cơ sở dữ liệu tz. Hãy xem tài liệu tham khảo
Cloud Scheduler để biết thêm thông tin về các thuộc tính được hỗ trợ.
Triển khai hàm theo lịch biểu
Khi bạn triển khai một hàm theo lịch biểu, công việc của trình lập lịch và chủ đề pub/sub liên quan sẽ tự động được tạo. Firebase CLI sẽ lặp lại tên chủ đề, và bạn có thể xem công việc và chủ đề trong bảng điều khiển Cloud. Chủ đề được đặt tên theo quy ước sau:
firebase-scheduled-function_name-region
Ví dụ:
firebase-scheduled-scheduledFunctionCrontab-us-east1.