Triển khai ứng dụng/máy chủ

Báo cáo sự cố Xem nguồn

Hệ thống Bazel được triển khai dưới dạng một quy trình máy chủ tồn tại trong thời gian dài. Điều này cho phép ứng dụng thực hiện nhiều hoạt động tối ưu hoá không thể thực hiện được với phương thức triển khai theo lô, chẳng hạn như lưu vào bộ nhớ đệm các tệp BUILD, biểu đồ phần phụ thuộc và các siêu dữ liệu khác từ bản dựng này sang bản dựng tiếp theo. Điều này giúp cải thiện tốc độ của các bản dựng gia tăng và cho phép các lệnh khác nhau, chẳng hạn như buildquery chia sẻ cùng một bộ nhớ đệm của các gói đã tải, giúp truy vấn rất nhanh.

Khi chạy bazel tức là bạn đang chạy ứng dụng. Ứng dụng tìm máy chủ dựa trên cơ sở đầu ra. Theo mặc định, dữ liệu này được xác định theo đường dẫn của thư mục không gian làm việc cơ sở và mã nhận dạng người dùng. Vì vậy, nếu xây dựng trong nhiều không gian làm việc, bạn sẽ có nhiều cơ sở đầu ra, từ đó tạo ra nhiều quy trình trên máy chủ Bazel. Nhiều người dùng trên cùng một máy trạm có thể tạo bản dựng đồng thời trong cùng một không gian làm việc vì cơ sở đầu ra của họ sẽ khác nhau (mã nhận dạng người dùng khác nhau). Nếu không tìm thấy phiên bản máy chủ đang chạy, thì ứng dụng sẽ bắt đầu một phiên bản mới. Quá trình này của máy chủ sẽ dừng sau một khoảng thời gian không hoạt động (3 giờ theo mặc định, bạn có thể sửa đổi thời gian này bằng cách sử dụng tuỳ chọn khởi động --max_idle_secs).

Trong hầu hết trường hợp, người dùng sẽ không nhìn thấy thực tế có một máy chủ đang chạy, nhưng đôi khi điều này sẽ giúp ích cho người dùng. Ví dụ: nếu đang chạy các tập lệnh thực hiện nhiều bản dựng tự động trong nhiều thư mục, quan trọng là bạn phải đảm bảo rằng bạn không tích luỹ nhiều máy chủ ở trạng thái rảnh. Bạn có thể làm việc này bằng cách tắt rõ ràng khi đã hoàn tất hoặc bằng cách chỉ định một khoảng thời gian chờ ngắn.

Tên của một quy trình máy chủ Bazel xuất hiện trong dữ liệu đầu ra của ps x hoặc ps -e f dưới dạng bazel(dirname), trong đó dirname là tên cơ sở của thư mục bao quanh gốc của thư mục không gian làm việc. Ví dụ:

ps -e f
16143 ?        Sl     3:00 bazel(src-johndoe2) -server -Djava.library.path=...

Nhờ vậy, bạn sẽ dễ dàng tìm ra quy trình máy chủ nào thuộc về một không gian làm việc cụ thể. (Xin lưu ý rằng với một số tuỳ chọn khác đối với ps, các quy trình của máy chủ Bazel có thể chỉ được đặt tên là java.) Bạn có thể dừng các máy chủ Bazel bằng cách sử dụng lệnh tắt.

Khi chạy bazel, trước tiên, ứng dụng sẽ kiểm tra để đảm bảo rằng máy chủ là phiên bản phù hợp. Nếu không, máy chủ này sẽ dừng và một máy chủ mới sẽ khởi động. Điều này đảm bảo rằng việc sử dụng quy trình máy chủ chạy trong thời gian dài sẽ không ảnh hưởng đến việc tạo phiên bản thích hợp.