Lập lịch chức năng

Nếu bạn muốn chức năng lịch trình để chạy vào những thời điểm nhất định, sử dụng functions.pubsub.schedule().onRun() phương pháp tiện lợi này tạo ra một Pub / Sub chủ đề và sử dụng đám mây Scheduler với các sự kiện kích hoạt về chủ đề đó, đảm bảo rằng chức năng của bạn chạy trên lịch trình mong muốn.

Trước khi bắt đầu

Để sử dụng giải pháp này trong dự án Firebase của bạn, dự án của bạn phải nằm trong gói định giá Blaze. Nếu nó không phải là đã có trên kế hoạch Blaze, nâng cấp kế hoạch giá cả của bạn .

Mặc dù bắt buộc phải thanh toán, nhưng bạn có thể mong đợi chi phí tổng thể có thể quản lý được, vì mỗi công việc của Cloud Scheduler có giá 0,10 đô la (USD) mỗi tháng và có ba công việc cho mỗi tài khoản Google, miễn phí. Sử dụng các Blaze giá máy tính để tạo ra một ước tính chi phí dựa trên việc sử dụng dự kiến của bạn.

Các API Pub / Sub và Cloud Scheduler phải được bật cho dự án của bạn. Các tính năng này đã được bật cho hầu hết các dự án Firebase; bạn có thể xác minh trong Google Cloud Platform điều khiển .

Viết một hàm đã lên lịch

Trong Chức năng đám mây cho Firebase, logic lập lịch nằm trong mã chức năng của bạn, không có yêu cầu đặc biệt về thời gian triển khai. Để tạo một chức năng lên kế hoạch, sử dụng functions.pubsub.schedule('your schedule').onRun((context)) . Ví dụ, để chạy một chức năng mỗi năm phút với App Engine cron.yaml cú pháp, làm điều gì đó như thế này:

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 đều được Cloud Scheduler hỗ trợ. Ví dụ: để sử dụng Crontab để chọn múi giờ cụ thể để chạy một chức năng đã 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ị cho timeZone phải là một tên múi giờ từ cơ sở dữ liệu tz . Xem các tài liệu tham khảo của Cloud Scheduler để biết thêm thông tin về tính chất hỗ trợ.

Triển khai một chức năng đã lên lịch

Khi bạn triển khai một chức năng đã lên lịch, công việc của bộ lập lịch có liên quan và chủ đề pub / sub sẽ được tạo tự động. Các căn cứ hỏa lực CLI vang tên chủ đề, và bạn có thể xem công việc và chủ đề trong GCP điều khiển . Chủ đề được đặt tên theo quy ước sau:

căn cứ hỏa lực-scheduled- function_name - region

Ví dụ:

firebase -ised-ScheduleFunctionCrontab-us-East1.