การใช้งานไคลเอ็นต์/เซิร์ฟเวอร์

วันที่ รายงานปัญหา ดูแหล่งที่มา ตอนกลางคืน · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

ระบบ Bazel ได้รับการนำมาใช้เป็นกระบวนการของเซิร์ฟเวอร์ที่มีอายุการใช้งานยาวนาน ซึ่งช่วยให้ ในการเพิ่มประสิทธิภาพ ซึ่งไม่สามารถทำได้หากใช้แบบกลุ่ม เช่น การแคชไฟล์ BUILD, กราฟทรัพยากร Dependency และข้อมูลเมตาอื่นๆ ไปสร้างคอนเทนต์ถัดไป ซึ่งช่วยเพิ่มความเร็วของการสร้างอย่างต่อเนื่อง คำสั่งต่างๆ เช่น build และ query เพื่อแชร์แคชเดียวกัน ทำให้การค้นหารวดเร็วขึ้นมาก

การเรียกใช้ bazel คุณกำลังเรียกใช้ไคลเอ็นต์ ไคลเอ็นต์ค้นหาเซิร์ฟเวอร์ ตามฐานเอาต์พุต ซึ่งโดยค่าเริ่มต้นจะกำหนดตามเส้นทางของฐาน Workspace และ User-ID ของคุณ ดังนั้น หากคุณสร้างบนพื้นที่ทำงานหลายแห่ง คุณจะมีฐานเอาต์พุตหลายรายการ ทำให้มีกระบวนการของเซิร์ฟเวอร์ 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; มิฉะนั้น เซิร์ฟเวอร์จะหยุดและเริ่มการทำงานของเซิร์ฟเวอร์ใหม่ ซึ่งช่วยให้มั่นใจว่า การใช้กระบวนการของเซิร์ฟเวอร์ที่ทำงานเป็นเวลานานจะไม่รบกวนการทำงานของ การกำหนดเวอร์ชัน