İstemci/sunucu uygulaması

Sorun bildir Kaynağı göster Gece · 7,3 · 7,2 · 7,1 · 7,0 · 6,5

Bazel sistemi uzun ömürlü bir sunucu işlemi olarak uygulanmıştır. Bu sayede toplu odaklı bir uygulama ile mümkün olmayan birçok optimizasyon gerçekleştirmeyi, BUILD dosyalarının önbelleğe alınması, bağımlılık grafikleri ve yardımcı olur. Bu şekilde artımlı derlemelerin hızı artar ve aynı önbelleği paylaşmak için build ve query gibi farklı komutlar yaparak sorguların çok hızlı olmasını sağlayabilir. Her sunucu en fazla bir öğeyi işleyebilir her seferinde çağrı; eşzamanlı başka çağrılarda spam'e yol açan (bkz. --block_for_lock)

bazel çalıştırdığınızda istemciyi çalıştırmış olursunuz. İstemci sunucuyu bulur temel alınan çıkış tabanı temel çalışma alanı dizininin yolu ve kullanıcı kimliğinize göre belirlenir. Dolayısıyla, birden fazla çalışma alanı derlerseniz birden fazla çıktı tabanınız olur ve birden fazla Bazel sunucusu işlemi olabilir. Aynı iş istasyonundaki birden fazla kullanıcı çıkış tabanları farklı olacağından aynı çalışma alanında eşzamanlı olarak derleme (farklı kullanıcı kimlikleri).

İstemci çalışan bir sunucu örneği bulamazsa yeni bir örnek başlatır. Google bunu, çıktı tabanının mevcut olup olmadığını kontrol ederek ve alev oluştuğunu ima ederek arşiv zaten açıldı. Aksi takdirde, çıktı tabanı yoksa istemci arşivin dosyalarını açar ve mtime öğelerini 9 yıllık bir tarihe ayarlar daha avantajlı bir konumda olursunuz. Yüklendikten sonra, istemcinin mtime sıkıştırılmış dosyalar, yüklemede değişiklik olmaması için en uzak tarihe eşittir olmuştur.

Sunucu işlemi belirli bir süre (varsayılan olarak 3 saat, Bu boyut, --max_idle_secs başlangıç seçeneği kullanılarak değiştirilebilir). Çoğunlukla kısmen, çalışan bir sunucu olduğu gerçeği kullanıcı tarafından görülemez, ancak bunu göz önünde bulundurmak faydalı olacaktır. Örneğin, komut dosyalarını çalıştırıyorsanız başka dizinlerde birçok otomatik derleme gerçekleştiren çok fazla boşta sunucu biriktirmediğinizden emin olmak için; bu işlemi söz konusu reklamları açıkça kapatmanızı veya kısa bir zaman aşımı süresi oluşmuştur.

Bazel sunucu işleminin adı, ps x veya ps -e f çıkışında görünür bazel(dirname) biçimindedir; burada dirname, çalışma alanı dizininizin kökünü kapsayan dizin. Örneğin:

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

Bu da hangi sunucu işleminin belirli bir veri kümesine ait çalışmayacaktır. (ps için diğer bazı seçeneklerde, Bazel sunucusuna işlemleri yalnızca java olarak adlandırılabilir.) Bazel sunucuları shutdown komutu kullanılır.

bazel çalışırken istemci öncelikle sunucunun uygun sürüm; yoksa sunucu durdurulur ve yeni bir sunucu başlatılır. Böylece proje daha uzun süreli bir sunucu işleminin kullanılması, doğru işleme sürüm oluşturma.