SORU
1 NİSAN 2012, Pazar


Nasıl 'havuz' PhantomJS örnekleri yönetmek için

Bir bağımsız değişken, bir URL alır kendi kullanımım için bir Java eklentisi içten planlıyorum, ve döndürür temsil eden htmlçözüldüBu URL DOM. Tarafından çözüldü yani bu Java eklentisi olacak öncelikle almak sayfada bu URL, daha sonra kullanmak PhantomJS için "dönüştürme" sayfa ve dönüş sonucu kaynağına LOGO AJAX çağrıları vb yürütülür. Ancak her istek için ayrı ayrı şimdi yapıyorum:) hayalet başlatıyoryolçok halsiz. Benim Java Eklentisi için son çağrı hizmet için her zaman mevcut PhantomJS havuzu örnekleri tercih ederim.

Herhangi bir iş böyle bir şey yapılabilir önce olmuştur? Başkalarının işi bu Java eklentisi taban sıfırdan kendim için bir havuz yöneticisi / http proxy server yazmayı tercih ederim.

Daha Fazla İçerik: Şimdiye kadar gördüğüm 2 benzer projeler ve neden her biri, yerine PhantomJS örnekleri havuz yönetimi hakkında bu soru sonuçta hep kaçındım. aşağıda listeledim

jsdom - gördüklerim var mükemmel işlevsellik için yürütülen komut bir sayfa, ama değil teşebbüs etmek çoğaltmak tarayıcı davranışlarını, eğer öyleyse ben kullanmak gibi bir genel amaçlı "DOM çözümleyici" diye sonunuzun bir sürü ekstra kodlama tanıtıcı her türlü kenarları durumlarda, olay arama, vb. Gördüğüm ilk örnek, el ile yüklendiğinde aramak zorunda olduğunu() vücut fonksiyon testi uygulaması için etiket Yukarı düğüm kullanarak kurdum. Derin bir tavşan deliği başlangıcı gibi görünüyordu.

Selenyum - soo çok daha fazla hareketli parça vardır, uzun ömürlü tarayıcı örneklerini yönetmek için bir havuz kurma sadece PhantomJS kullanarak daha karmaşık olacak. Bu makro kayıt / komut dosyası avantajların hiçbirine ihtiyacım yok. Ben sadece bir Java eklentisi bu gibi ölçülebilir de bir web sayfası ve çözme değil DOM gibi olsaydım tarama için URL ile bir tarayıcı (hatta daha hızlı yapabileceğim bir şey varsa yapmak bunu göz ardı görüntüler vb.)

CEVAP
28 EKİM 2013, PAZARTESİ


Ben bir PhantomJs Hizmet Bulut, ne soruyorsun çok mu Kur. Bana işin yaklaşık 5 hafta uygulamaya aldı.

İçine edeceğiz en büyük sorun memory leaks in PhantomJs bilinen bir sorun. Bu geçici çalışıyorum benim örneklerini her 50 çağrı döngü.

İçine edeceğiz ikinci en büyük sorun işlem çok cpu ve bellek yoğun sayfa başına, sadece CPU başına 4 veya çok örneğini çalıştırmak mümkün olacak.

İçine edeceğiz üçüncü en büyük sorun PhantomJs sayfa-son olaylar ve yönlendirmeleri ile oldukça tuhaf. Sayfanızı aslında önce işleme tamamlandığını haberdar olacaksınız. There are a number of ways to deal with this, ama hiçbir şey 'standart' ne yazık ki.

İle uğraşmak zorunda kalırsın dördüncü en büyük sorun neyse a lot of npm packages that deal with this issue seçim için vardır nodejs ve phantomjs arasındaki birlikte çalışabilirlik.

Önyargılı olduğumu biliyorum önereceğim çözüm yazdığım gibi çok ama ışık kullanım için ücretsiz PhantomJs.Cloud kontrol öneririz.

Oca 2015 güncelleme:Başka bir (5?) karşılaştım büyük sorun yük-dengeleyici/yöneticisi yanıt/istek göndermek için nasıl. Aslında PhantomJS-dahili HTTP server kullanıyordum, ama sınırlamalar, özellikle en büyük yanıt boyutu ile ilgili değil habersizdik. -Dosya sistemi iletişim hatları gibi/yazılı sona erdi.* Toplam süre uygulama adam-hafta belki 20 konuları temsil harcanan iş belki 1000 saattir. *ve tam yapıyorum BİLGİNİZE sonraki sürüm için yeniden yazmak.... (devam ediyor)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • George McCarron

    George McCar

    29 Mayıs 2013
  • Nightmare2005

    Nightmare200

    14 Ocak 2007
  • SRC RECORDS

    SRC RECORDS

    2 EKİM 2006