क्लाइंट/सर्वर को लागू करना

अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है किसी समस्या की शिकायत करें सोर्स देखें रात · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

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 चलाते समय, क्लाइंट पहले यह जांच करता है कि सर्वर सही है या नहीं वर्शन; अगर नहीं, तो सर्वर बंद हो जाता है और एक नया चालू हो जाता है. इससे पक्का होता है कि लंबे समय तक चलने वाली सर्वर प्रोसेस का इस्तेमाल करने से, सही वर्शन.