הטמעת לקוח/שרת

מערכת Bazel מיושמת כתהליך שרת בעל חיים ארוכים. כך מתאפשר ביצוע אופטימיזציות רבות שאינן אפשריות באמצעות הטמעה ממוקדת, כמו שמירה במטמון של קובצי BUILD, תרשימי תלות ומטא-נתונים אחרים מ-build אחד למשנהו. פעולה זו משפרת את המהירות של גרסאות build מצטברות, ומאפשרת לפקודות שונות, כגון build ו-query, לשתף את אותו מטמון של חבילות נטענות, והשאילתות מהירות מאוד.

כשאתה מפעיל את bazel, אתה מפעיל את הלקוח. הלקוח מוצא את השרת לפי בסיס היציאות, הנקבע כברירת מחדל לפי הנתיב של ספריית מסד הנתונים הבסיסית ומזהה המשתמש שלכם, כך שאם תיצרו מספר סביבות עבודה, יהיו לכם כמה בסיס הפלט, ולכן גם מספר תהליכי שרת Bazel. מספר משתמשים באותה תחנת עבודה יכולים לבנות בו-זמנית באותו סביבת עבודה מפני שבסיסי הפלט שלהם יהיו שונים (מזהי משתמשים שונים). אם הלקוח לא מצליח לאתר מופע של שרת פועל, הוא יתחיל מופע חדש. תהליך השרת ייעצר לאחר פרק זמן של חוסר פעילות (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=...

כך קל יותר לגלות איזה תהליך שרת שייך לסביבת עבודה נתונה. (מומלץ להיזהר כי עם אפשרויות אחרות ל-ps, תהליכי שרת Bazel יכולים להיקרא רק java). אפשר לעצור שרתי Bazel באמצעות הפקודה כיבוי.

בעת הפעלת bazel, הלקוח בודק תחילה שהשרת הוא הגרסה המתאימה; אם לא, השרת יופסק ושירות חדש יתחיל. כך ניתן להבטיח שהשימוש בתהליך שרת ותיק לא יפריע לגרסה הנכונה.