تنفيذ العميل/الخادم

يتم تنفيذ نظام Bazel كمعالجة طويلة الأمد للخادم. ويسمح ذلك بإجراء العديد من التحسينات التي لا يمكن تنفيذها من خلال تنفيذ عمليات إرسال مجمّعة، مثل التخزين المؤقت لملفات BUILD والرسوم البيانية للاعتماد وغير ذلك من البيانات الوصفية من إصدار إلى آخر. يحسّن ذلك سرعة الإصدارات المتزايدة، كما يسمح للأوامر المختلفة، مثل build وquery بمشاركة ذاكرة التخزين المؤقت نفسها للحزم التي تم تحميلها، ما يجعل طلبات البحث سريعة جدًا.

عند تشغيل bazel، يتم تشغيل البرنامج. يعثر البرنامج على الخادم استنادًا إلى قاعدة الإخراج، والتي يتم تحديدها تلقائيًا من خلال مسار دليل مساحة العمل الأساسي وUserid، لذا إذا أنشأت في مساحات عمل متعددة، سيكون لديك العديد من وبالتالي فإنّها تُطبَّق عمليات متعدّدة على خادم Bazel. يمكن إنشاء حسابات مستخدمين متعدّدة على محطة العمل نفسها في آنٍ واحد في مساحة العمل نفسها لأنّ قواعد إخراجها ستختلف (userids مختلفة). وإذا لم يتمكن العميل من العثور على مثيل خادم قيد التشغيل، يبدأ خادمًا جديدًا. وسيتم إيقاف عملية الخادم بعد فترة من عدم النشاط (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 باستخدام الأمر shutdown (إيقاف التشغيل).

عند تشغيل bazel، يتحقق العميل أولاً من أن الخادم هو الإصدار المناسب؛ وإذا لم يكن الأمر كذلك، يتم إيقاف الخادم وبدأ خادم جديد. وهذا يضمن أن استخدام عملية الخادم القديمة لا يتداخل مع الإصدار الصحيح.