Basel सिस्टम को, लंबे समय तक चलने वाली सर्वर प्रोसेस के तौर पर लागू किया जाता है. इससे यह सुविधा मिलती है
ऐसे कई ऑप्टिमाइज़ेशन करने के लिए जो बैच-आधारित काम करने के तरीके के साथ संभव नहीं हैं,
जैसे, BUILD फ़ाइलों को कैश मेमोरी में सेव करना, डिपेंडेंसी ग्राफ़, और किसी एक डेटा से अन्य मेटाडेटा
अगले चरण पर जाएं. यह इंक्रीमेंटल बिल्ड की स्पीड को बेहतर बनाता है,
जैसे कि build
और query
पैकेज लोड हो जाते हैं, जिससे क्वेरी बहुत तेज़ी से हो जाती हैं.
bazel
का इस्तेमाल करने का मतलब है कि क्लाइंट की जगह पर ही क्लाइंट का विज्ञापन दिख रहा है. क्लाइंट, सर्वर को ढूंढ लेता है
आउटपुट बेस के आधार पर, जो डिफ़ॉल्ट रूप से बेस के पाथ से तय होता है
एक से ज़्यादा फ़ाइल फ़ोल्डर बनाने पर,
आपके पास एक से ज़्यादा आउटपुट बेस होंगे और इसलिए, एक से ज़्यादा Basel सर्वर प्रोसेस होंगी.
एक वर्कस्टेशन पर मौजूद कई उपयोगकर्ता, एक साथ एक ही वर्कस्टेशन बना सकते हैं
क्योंकि उनके आउटपुट बेस अलग-अलग होंगे (अलग-अलग यूज़र आईडी).
अगर क्लाइंट को कोई मौजूदा सर्वर इंस्टेंस नहीं मिलता है, तो यह एक नया इंस्टेंस शुरू करता है. यह
ऐसा करने के लिए, यह जांच की जाती है कि आउटपुट बेस पहले से मौजूद है या नहीं. इसका मतलब है कि गड़बड़ी
संग्रह पहले ही अनपैक किया जा चुका है. अगर आउटपुट बेस मौजूद नहीं है, तो
क्लाइंट, संग्रह की फ़ाइलों को अनज़िप करता है और अपने mtime
के लिए 9 साल की तारीख सेट करता है
आने वाले समय में. इंस्टॉल होने के बाद, क्लाइंट पुष्टि करता है किmtime
अनज़िप की गई फ़ाइलें अब तक की तारीख के बराबर होती हैं, ताकि इंस्टॉलेशन के साथ कोई छेड़छाड़ न की जा सके
आ गया है.
कुछ समय तक कोई गतिविधि न होने (डिफ़ॉल्ट रूप से तीन घंटे,
जिसे स्टार्टअप विकल्प --max_idle_secs
का इस्तेमाल करके बदला जा सकता है). ज़्यादातर के लिए
कुछ हिस्सा है, तो यह तथ्य उपयोगकर्ता को नहीं दिखता कि सर्वर चल रहा है, लेकिन
कभी-कभी इस बात को ध्यान में रखना मददगार होता है. उदाहरण के लिए, अगर आप स्क्रिप्ट चला रहे हैं
जो अलग-अलग डायरेक्ट्री में कई सारे ऑटोमेटेड बिल्ड करते हैं, यह ज़रूरी है
यह पक्का करने के लिए कि आपके सर्वर पर, इनऐक्टिव सर्वर की संख्या ज़्यादा न हो; आप यह काम करके ऐसा कर सकते हैं
उन्हें बंद करने की प्रोसेस पूरी हो जाने पर उन्हें साफ़ तौर पर बंद किया जा सकता है या
थोड़ी देर के लिए सेट अप हो जाता है.
Basel सर्वर प्रोसेस का नाम ps x
या ps -e f
के आउटपुट में दिखता है
bazel(dirname)
के तौर पर, जहां Dirname का बेसनेम है
डायरेक्ट्री के अंदर, फ़ाइल फ़ोल्डर डायरेक्ट्री के रूट में मौजूद होती है. उदाहरण के लिए:
ps -e f
16143 ? Sl 3:00 bazel(src-johndoe2) -server -Djava.library.path=...
इससे यह पता लगाना आसान हो जाता है कि कौनसा सर्वर प्रोसेस दिए गए पेज से जुड़ा है
name@yourcompany.com जैसा कोई प्रोफ़ेशनल ईमेल पता बनाएं. इससे आपका कारोबार ज़्यादा भरोसेमंद बनेगा. (ध्यान रखें कि ps
, Basel सर्वर के कुछ अन्य विकल्पों के साथ
प्रक्रियाओं को केवल java
का नाम दिया जा सकता है.) Basel सर्वर को
बंद करें आदेश.
bazel
चलाते समय, क्लाइंट पहले यह जांच करता है कि सर्वर सही है या नहीं
वर्शन; अगर नहीं, तो सर्वर बंद हो जाता है और एक नया चालू हो जाता है. इससे पक्का होता है कि
लंबे समय तक चलने वाली सर्वर प्रोसेस का इस्तेमाल करने से, सही
वर्शन.