ระบบ Bazel ได้รับการนำมาใช้เป็นกระบวนการของเซิร์ฟเวอร์ที่มีอายุการใช้งานยาวนาน ซึ่งช่วยให้
ในการเพิ่มประสิทธิภาพ ซึ่งไม่สามารถทำได้หากใช้แบบกลุ่ม
เช่น การแคชไฟล์ BUILD, กราฟทรัพยากร Dependency และข้อมูลเมตาอื่นๆ
ไปสร้างคอนเทนต์ถัดไป ซึ่งช่วยเพิ่มความเร็วของการสร้างอย่างต่อเนื่อง
คำสั่งต่างๆ เช่น build
และ query
เพื่อแชร์แคชเดียวกัน
ทำให้การค้นหารวดเร็วขึ้นมาก แต่ละเซิร์ฟเวอร์จัดการได้ไม่เกิน 1
ครั้ง คำขอหลายรายการพร้อมกัน
จะบล็อกหรือ
ล้มเหลวอย่างรวดเร็ว (ดู --block_for_lock
)
การเรียกใช้ bazel
คุณกำลังเรียกใช้ไคลเอ็นต์ ไคลเอ็นต์ค้นหาเซิร์ฟเวอร์
ตามฐานเอาต์พุต ซึ่งโดยค่าเริ่มต้นแล้ว
กำหนดตามเส้นทางของไดเรกทอรีพื้นที่ทำงานพื้นฐานและรหัสผู้ใช้ ดังนั้นหาก
ที่คุณสร้างในพื้นที่ทำงานหลายแห่ง คุณจะมีฐานเอาต์พุตหลายฐาน ซึ่งทำให้
กระบวนการของเซิร์ฟเวอร์ Bazel หลายรายการ ผู้ใช้หลายคนในเวิร์กสเตชันเดียวกันสามารถ
สร้างพร้อมกันในพื้นที่ทำงานเดียวกันเนื่องจากฐานเอาต์พุตจะแตกต่างกัน
(รหัสผู้ใช้ที่แตกต่างกัน)
หากไคลเอ็นต์ไม่พบอินสแตนซ์เซิร์ฟเวอร์ที่ทำงานอยู่ อินสแตนซ์นั้นจะเริ่มอินสแตนซ์ใหม่ ทั้งนี้
โดยการตรวจสอบว่ามีฐานเอาต์พุตอยู่แล้วหรือไม่ ซึ่งแสดงถึงการหยุดทำงาน
คลายการแพคข้อมูลที่เก็บถาวร แล้ว หากไม่มีฐานเอาต์พุต
ไคลเอ็นต์จะคลายการบีบอัดไฟล์ของที่เก็บถาวรและตั้งค่า mtime
เป็นวันที่ 9 ปี
ในอนาคต เมื่อติดตั้งแล้ว ไคลเอ็นต์จะยืนยันว่า mtime
ของ
ไฟล์ที่คลายการบีบอัดจะเท่ากับวันที่ที่คลาดเคลื่อนออกไปมาก เพื่อให้แน่ใจว่าไม่มีการงัดแงะการติดตั้ง
เกิดขึ้น
กระบวนการของเซิร์ฟเวอร์จะหยุดลงหลังจากไม่มีการใช้งานระยะหนึ่ง (โดยค่าเริ่มต้น 3 ชั่วโมง
ซึ่งแก้ไขได้โดยใช้ตัวเลือกเริ่มต้น --max_idle_secs
) มากที่สุด
ส่วนหนึ่งคือผู้ใช้มองไม่เห็นเซิร์ฟเวอร์ที่ทำงานอยู่ แต่
ในบางครั้ง คุณควรคำนึงถึงเรื่องนี้ด้วย เช่น หากคุณกำลังเรียกใช้สคริปต์
ที่สร้างอัตโนมัติจำนวนมากในไดเรกทอรีต่างๆ เป็นสิ่งสำคัญ
เพื่อให้แน่ใจว่าคุณไม่ได้สะสมเซิร์ฟเวอร์ที่ไม่มีการใช้งานจำนวนมาก คุณจะทำได้โดย
ปิดการป้องกันอย่างชัดเจน
เมื่อใช้งานเสร็จแล้ว หรือโดยการระบุ
ระยะหมดเวลาสั้นๆ
ชื่อกระบวนการของเซิร์ฟเวอร์ Bazel จะปรากฏในเอาต์พุตของ ps x
หรือ ps -e f
เป็น bazel(dirname)
โดยที่ dirname เป็นชื่อฐานของ
ไดเรกทอรีที่ล้อมรอบรูทของไดเรกทอรีพื้นที่ทำงาน เช่น
ps -e f
16143 ? Sl 3:00 bazel(src-johndoe2) -server -Djava.library.path=...
วิธีนี้จะช่วยให้ค้นหาได้ง่ายขึ้นว่ากระบวนการของเซิร์ฟเวอร์ใดเป็นของ
Google Workspace ได้อย่างเต็มประสิทธิภาพ (โปรดระวังตัวเลือกอื่นสำหรับ ps
, เซิร์ฟเวอร์ Bazel
อาจมีชื่อกระบวนการเพียง java
) เซิร์ฟเวอร์ Bazel สามารถหยุดโดยใช้
คำสั่ง shutdown
เมื่อเรียกใช้ bazel
ไคลเอ็นต์จะตรวจสอบว่าเซิร์ฟเวอร์เป็นเซิร์ฟเวอร์ที่เหมาะสมหรือไม่
version; มิฉะนั้น เซิร์ฟเวอร์จะหยุดและเริ่มการทำงานของเซิร์ฟเวอร์ใหม่ ซึ่งช่วยให้มั่นใจว่า
การใช้กระบวนการของเซิร์ฟเวอร์ที่ทำงานเป็นเวลานานจะไม่รบกวนการทำงานของ
การกำหนดเวอร์ชัน