Hàm lịch biểu (thế hệ thứ nhất)

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/SubCloud 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.