İstemci/sunucu uygulaması

Sorun bildirme Kaynağı görüntüleme Nightly · 8.0 . 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Bazel sistemi, uzun ömürlü bir sunucu işlemi olarak uygulanır. Bu sayede, BUILD dosyalarının, bağımlılık graflarının ve bir derlemeden diğerine diğer meta verilerin önbelleğe alınması gibi toplu işleme odaklı bir uygulamayla mümkün olmayan birçok optimizasyon gerçekleştirebilir. 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ır. Böylece sorgular çok hızlı bir şekilde yapılır.

bazel dosyasını çalıştırdığınızda istemciyi çalıştırmış olursunuz. İstemci, sunucuyu çıkış tabanına göre bulur. Çıkış tabanı varsayılan olarak ana Workspace dizininin yoluna ve kullanıcı kimliğinize göre belirlenir. Bu nedenle, birden fazla Workspace'te derleme yaparsanız birden fazla çıkış tabanı ve dolayısıyla birden fazla Bazel sunucusu işlemi olur. Çıkış tabanları farklı olduğu için (farklı kullanıcı kimlikleri) aynı iş istasyonundaki birden fazla kullanıcı aynı çalışma alanında aynı anda derleme yapabilir. İstemci, çalışan bir sunucu örneği bulamazsa yeni bir sunucu örneği başlatır. Sunucu işlemi, bir süre işlem yapılmadıktan sonra durur (varsayılan olarak 3 saattir ve --max_idle_secs başlangıç seçeneği kullanılarak değiştirilebilir).

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

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

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

Bu sayede, belirli bir çalışma alanına ait sunucu sürecini daha kolay bulabilirsiniz. (ps için belirli diğer seçeneklerde Bazel sunucu işlemlerinin yalnızca java olarak adlandırılabileceğine dikkat edin.) Bazel sunucuları shutdown komutu kullanılarak durdurulabilir.

bazel çalıştırıldığında istemci, önce sunucunun uygun sürümde olup olmadığını kontrol eder. Uygun değilse sunucu durdurulur ve yeni bir sunucu başlatılır. Bu sayede, uzun süre çalışan bir sunucu işleminin kullanılması, doğru sürümlendirmeyi etkilemez.