SORU
4 NİSAN 2012, ÇARŞAMBA


Yazıcı belirleme bak-up olmadan yazdırma işi halledebilir

PrintServiceLookup; lookupPrintServices(DocFlavor flavor, AttributeSet attributes) yöntemi aşırı yavaş bir başlangıç ile başvuru yazıcılar tespit etmek çalıştırılacak mücadele edilmiştir. 100'den fazla ağ yazıcıları ile müşterileri bu kodu yürütür davranışları düzgün çalışmayabilir ilk kez sahne olduğunu bildirdi.

Arama sonuçları önbelleğe alınmış gördükten sonra, başlangıçta bir kukla-Yukarı Bak ayrı bir konu içinde (başlangıçta idam) gönderdim. Ancak, belirli bir müşteri için bu çözüm işe yaramıyor.

Şu anda çevreleri var ve tam bir performans sorunu neden görmüyorum.

Eğer PrintService MediaSizeName verilen destekler olmadığını görmek için çalışıyorumolmadanbir sahne-Yukarı Bak DocFlavor AttributeSet. Tüm kullanılabilir PrintServices ve varsayılan PrintService çektim:

private static final PrintService[] PRINTSERVICES = 
   PrintServiceLookup.lookupPrintServices(null, null);

private static final PrintService DEFAULTSERVICE = 
   PrintServiceLookup.lookupDefaultPrintService();

Ve sonra, PrintService ve istemciden MediaSizeName istek edinin. Son olarak, eğer MediaSizeName tarafından desteklenen ise PrintService soruyorum:

private void checkPrintServiceForMediaSize(PrintService pservice) throws MediaSizeNotSupportedException{
     if(!pservice.isAttributeValueSupported(_mediaSizeName,null,null))
            throw new MediaSizeNotSupportedException("This media size is not supported by the selected printer.");
     }

API isAttributeValueSupported(Attribute attrval,DocFlavor flavor,AttributeSet attributes) null DocFlavor AttributeSet ile çağrıldığında olduğunu beyan eder

bu yöntem, bu Baskı Hizmet nitelikleri doc lezzet ve set bazı olası kombinasyon için verilen baskı öznitelik değeri destekleyip desteklemediğini söyledi

ve düzgün şimdiye kadar davrandı. Ancak, eğer bu bir yazıcı seçili sayfa boyutu destekliyorsa gerçekleştirmek için bir yol olup olmadığını tam olarak emin değilim.

Görüşleriniz ve bu konuda bir tecrübem oldu.


Güncelleme

Benim yaklaşım uygulanan zaman, benim iş biraz beni aldı ciddi ağ sorunları çözmeye karar verdi. Son olarak, benim uygulama ağ aracı SoftPerfect Connection Emulator (Ağ Yükü simüle etmek için) ile test edilmiş ve sonuçları önemli ölçüde geliştirilmiş değil.

Test devam ediyor ve bu soru güncellenir. Umarım bir çözüm bulabilirim ve buradaki insanlar ile paylaşmak. İlk arama olduğunu tahmin ediyorum:

private static final PrintService[] PRINTSERVICES = 
   PrintServiceLookup.lookupPrintServices(null, null);

hala sorunlar neden oluyor.


Güncelleme 2

Beta yapı sonunda test istemci ortamı ve performans yazdırma iletişim ile ilgili 5 kat artırıldı (ilk çekme yazıcı şimdi alır 1 dakika altında aynı ortama göre yaklaşık 5 dakika). Hala ilk bekleme süresi zaman kabul edilebilir bir miktar, ancak şu an için yapabileceğim en iyi şey değildir. Ayrıca yazdırma sunucusu kullanılan istemci duymuş ve yorumlar (@Wardy) önerileri doğrultusunda, bu yönde ilerlemeye devam edeceğim. Umarım, yazdırma sunucusu avantajları dönüştürebiliriz.

CEVAP
12 Mayıs 2012, CUMARTESİ


Daha agresif önbellekleme. İstemci-Yukarı Bak bir kez gerçekleştirin ve yeniden arasındaki önbellek devam etmektedir. Daha da iyisi, tüm istemciler tarafından erişilebilir merkezi bir veri deposu için önbellek kaydedin.

Ağ yazıcıları ve yeteneklerini o kadar sık değişmez ancak önbellek sonunda güncellemek için olduğunu varsayıyorum, ama "kim" ve "ne zaman" ortamınıza bağlıdır.

Önbelleğe güncellemeleri arka planda mevcut keşif çalışan ve eğer bir değişiklik tespit güncelleştirmeleri önbelleği eğer bir müşteri tarafından yapılabilir. Eğer zaten sürekli çalışan merkezi bir bileşen varsa, bu sabit aralıklarla kontrol edebileceğiniz iyi bir yer olurdu.

Eğer dizin hizmeti bir tür varsa, her yazıcı özellikleri ağ ve cpu yükü azaltmak için başvurmadan önce önbellek yazıcısı listesini karşılaştırabilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Caramella Girls

    Caramella Gi

    19 Mayıs 2008
  • katherine gomez

    katherine go

    1 Aralık 2011
  • Lin Steven

    Lin Steven

    17 EKİM 2006