获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

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

Nếu bạn muốn lên lịch để các chức năng chạy vào những thời điểm đã chỉ định, hãy sử dụng functions.pubsub.schedule().onRun() Phương thức tiện lợi này tạo chủ đề Pub/Sub và 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ủ đề đó, đả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, dự án của bạn phải nằm trong gói giá của Blaze. Nếu nó chưa có trong gói Blaze, hãy nâng cấp gói giá của bạn .

Mặc dù yêu cầu thanh toán, nhưng bạn có thể mong đợi tổng chi phí có thể quản lý được, vì mỗi công việc trên Bộ lập lịch trên đám mây có giá 0,1 USD (USD) mỗi tháng và bạn được miễn phí ba công việc cho mỗi tài khoản Google. Sử dụng máy tính đị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.

API Pub/Sub và Cloud Scheduler phải được bật cho dự án của bạn. Những 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 Console .

Viết một chức năng theo lịch trình

Trong Cloud Functions for Firebase, lập lịch logic 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 lịch, hãy sử dụng functions.pubsub.schedule('your schedule').onRun((context)) . Ví dụ: để chạy một chức năng cứ sau 5 phút với cú pháp cron.yaml của App Engine , hãy thực hiện 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 đều được Cloud Scheduler hỗ trợ. Ví dụ: để sử dụng Crontab để chọn múi giờ cụ thể để chạy chức năng đã lên lịch, hãy thực hiện 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ờ từ cơ sở dữ liệu tz . Xem tài liệu tham khảo về Bộ lập lịch đám mây để biết thêm thông tin về các thuộc tính được hỗ trợ.

Triển khai một chức năng theo lịch trình

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

firebase-scheduled- function_name - region

Ví dụ:

firebase-scheduled-scheduledFunctionCrontab-us-east1.

,

Nếu bạn muốn lên lịch để các chức năng chạy vào những thời điểm đã chỉ định, hãy sử dụng functions.pubsub.schedule().onRun() Phương thức tiện lợi này tạo chủ đề Pub/Sub và 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ủ đề đó, đả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, dự án của bạn phải nằm trong gói giá của Blaze. Nếu nó chưa có trong gói Blaze, hãy nâng cấp gói giá của bạn .

Mặc dù yêu cầu thanh toán, nhưng bạn có thể mong đợi tổng chi phí có thể quản lý được, vì mỗi công việc trên Bộ lập lịch trên đám mây có giá 0,1 USD (USD) mỗi tháng và bạn được miễn phí ba công việc cho mỗi tài khoản Google. Sử dụng máy tính đị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.

API Pub/Sub và Cloud Scheduler phải được bật cho dự án của bạn. Những 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 Console .

Viết một chức năng theo lịch trình

Trong Cloud Functions for Firebase, lập lịch logic 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 lịch, hãy sử dụng functions.pubsub.schedule('your schedule').onRun((context)) . Ví dụ: để chạy một chức năng cứ sau 5 phút với cú pháp cron.yaml của App Engine , hãy thực hiện 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 đều được Cloud Scheduler hỗ trợ. Ví dụ: để sử dụng Crontab để chọn múi giờ cụ thể để chạy chức năng đã lên lịch, hãy thực hiện 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ờ từ cơ sở dữ liệu tz . Xem tài liệu tham khảo về Bộ lập lịch đám mây để biết thêm thông tin về các thuộc tính được hỗ trợ.

Triển khai một chức năng theo lịch trình

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

firebase-scheduled- function_name - region

Ví dụ:

firebase-scheduled-scheduledFunctionCrontab-us-east1.