Hàm lên lịch


Nếu bạn muốn lên lịch cho 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 chủ đề Pub/Sub sử dụng Trình lập lịch biểu đám mây để kích hoạt các sự kiện về 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 sử dụng gói giá Blaze. Nếu bạn chưa có gói linh hoạt, hãy nâng cấp gói giá.

Mặc dù bắt buộc phải thanh toán, nhưng bạn có thể dự kiến rằng tổng chi phí sẽ có thể quản lý được, vì mỗi công việc trong Cloud Scheduler có giá 0,1 USD mỗi tháng và mỗi Tài khoản Google được phép có tối đa 3 công việc mà không tốn phí. Sử dụng công cụ tính giá linh hoạt để tạo chi phí ước tính 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. Bạn phải bật các phương thức này cho hầu hết dự án Firebase; bạn có thể xác minh trong Bảng điều khiển Google Cloud Platform.

Viết một hàm theo lịch

Trong Hàm đám mây cho Firebase, logic lập lịch biểu 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 một hàm theo lịch, hãy sử dụng functions.pubsub.schedule('your schedule').onRun((context)). Ví dụ: để chạy một hàm mỗi 5 phút bằng cú pháp 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;
});

Cloud Scheduler hỗ trợ cả cú pháp Unix Crontab và App Engine. Ví dụ: để sử dụng Crontab nhằm chọn một múi giờ cụ thể để chạy một hàm được lên lịch, 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. 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 một hàm đã lên lịch

Khi bạn triển khai một hàm theo lịch, công việc trong trình lập lịch biểu có liên quan và chủ đề pub/sub sẽ được tạo tự động. Firebase CLI sẽ lặp lại tên chủ đề và bạn có thể xem công việc và chủ đề này trong Bảng điều khiển GCP. Chủ đề được đặt tên theo quy ước sau đây:

firebase-schedule-function_name-region

Ví dụ:

firebase-Lịch trình của FunctionCrontab-us-east1