İstemci/sunucu uygulaması

Sorun bildirin Kaynağı göster

Bazel sistemi uzun ömürlü bir sunucu işlemi olarak uygulanmıştır. Bu da DERLEME dosyalarının önbelleğe alınması, bağımlılık grafikleri ve bir derlemeden diğerine diğer meta veriler gibi toplu odaklı bir uygulama ile mümkün olmayan birçok optimizasyonun gerçekleştirilmesine olanak tanır. Bu, artımlı derlemelerin hızını artırır ve build ve query gibi farklı komutların yüklü paketlerin aynı önbelleğini paylaşmasına olanak tanıyarak sorguları çok hızlı hale getirir.

bazel çalıştırdığınızda istemciyi çalıştırmış olursunuz. İstemci sunucuyu çıkış tabanına göre bulur. Bu taban, varsayılan olarak temel çalışma alanı dizininin yolu ve kullanıcı kimliğiniz tarafından belirlenir. Dolayısıyla, birden fazla çalışma alanında derleme yaparsanız birden fazla çıkış tabanınız olur ve dolayısıyla birden fazla Bazel sunucusu işleminiz olur. Aynı iş istasyonundaki birden fazla kullanıcı, çıkış tabanları farklılık göstereceğinden (farklı kullanıcı kimlikleri) aynı çalışma alanında eşzamanlı olarak derleme yapabilir. İstemci çalışan bir sunucu örneği bulamazsa yeni bir örnek başlatır. Sunucu işlemi, belirli bir süre (varsayılan olarak 3 saat) etkinlik olmadığında durur. Bu süre --max_idle_secs başlangıç seçeneği kullanılarak değiştirilebilir.

Çoğu durumda, çalışan bir sunucu olduğu gerçeği kullanıcı tarafından görülmez, ancak bazen bunu göz önünde bulundurmak faydalı olur. Örneğin, farklı dizinlerde çok sayıda otomatik derleme işlemi gerçekleştiren komut dosyaları çalıştırıyorsanız çok fazla boşta sunucu biriktirmemeniz önemlidir. Bunu, işiniz bittiğinde bunları açıkça kapatarak veya kısa bir zaman aşımı süresi belirterek yapabilirsiniz.

Bir Bazel sunucu işleminin adı, ps x veya ps -e f çıktısında bazel(dirname) olarak görünür. Burada dirname, çalışma alanı dizininizin kökünü kapsayan dizinin temel adıdır. Örneğin:

ps -e f
16143 ?        Sl     3:00 bazel(src-johndoe2) -server -Djava.library.path=...

Bu, hangi sunucu işleminin belirli bir çalışma alanına ait olduğunu bulmayı kolaylaştırır. (Diğer bazı ps seçeneklerinde Bazel sunucu işlemlerinin yalnızca java olarak adlandırılabileceğini unutmayın.) Bazel sunucuları shutdown komutu kullanılarak durdurulabilir.

bazel çalıştırırken istemci öncelikle sunucunun uygun sürüm olup olmadığını kontrol eder. Aksi takdirde sunucu durdurulur ve yeni bir sürüm başlatılır. Bu, uzun süreli bir sunucu işleminin kullanılmasının doğru sürüm oluşturmayı engellememesini sağlar.