Nếu bạn muốn lên lịch để các hàm chạy vào những 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 để kích hoạt sự kiện trên
chủ đề đó.
Trước khi bắt đầu
Để sử dụng giải pháp này trong dự án Firebase, dự án của bạn phải trên Gói giá linh hoạt. Nếu chưa có trong Gói linh hoạt, nâng cấp gói giá của bạn.
Mặc dù thanh toán là bắt buộc, nhưng bạn có thể thấy tổng chi phí quản lý được, vì mỗi việc làm Cloud Scheduler có chi phí là 0, 1 USD/tháng và có cho phép 3 công việc cho mỗi Tài khoản Google mà không mất phí. Sử dụng Blaze máy tính giá để 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. Bạn phải bật các tính năng này cho hầu hết các dự án Firebase; bạn có thể xác minh trong bảng điều khiển Google Cloud.
Viết hàm được lên lịch
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 về thời gian triển khai. Để tạo hàm được lên lịch,
sử dụng functions.pubsub.schedule('your schedule').onRun((context))
.
Ví dụ: để chạy hàm mỗi
5 phút với
App Engine cron.yaml
, 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;
});
Cả cú pháp Unix Crontab và App Engine được Cloud Scheduler hỗ trợ. Ví dụ: để sử dụng Crontab để chọn một múi giờ cụ thể để chạy 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ị cho timeZone
phải là tên múi giờ trong
cơ sở dữ liệu tz. Xem
Tài liệu tham khảo về Cloud Scheduler
để biết thêm thông tin về các thuộc tính được hỗ trợ.
Triển khai hàm được lên lịch
Khi bạn triển khai một hàm được lên lịch, công việc của trình lập lịch biểu và pub/sub chủ đề được tạo tự động. CLI Firebase lặp lại tên chủ đề, để xem công việc và chủ đề trong Bảng điều khiển Google Cloud. Chủ đề này được đặt tên theo quy ước sau:
firebase-schedule-function_name-region
Ví dụ:
firebase-schedule-scheduleFunctionCrontab-us-east1.