SORU
9 HAZİRAN 2009, Salı


Sürekli/PHP ile Curl Kütüphanesi HTTP keepalive?

Basit bir PHP Kütüphanesi SOLR dizin, HTTP üzerinden belge ekleme için kullanıyorum.

Şu anda 3 sunucular vardır:

  1. PHP kutusunu dizin oluşturma işi
  2. Veritabanı kutusunda veri tutan dizine
  3. Solr kutusu.

80 belgeleri/sn (1 milyon docs), ben fark alışılmadık derecede yüksek kesme hızı ağ arayüzleri üzerinde PHP ve solr kutuları (2000/sn; ne daha fazla, grafikler neredeyse aynı ... kesme hızı üzerinde PHP kutusunu sivri, aynı zamanda sivri üzerinde Solr kutusu), ama çok çok daha az bir veritabanı kutu (300/sn). Sanırım bu sadece çünkü ben açık ve yeniden tek bir bağlantı için veritabanı sunucusu, ama her Solr isteği şu anda açılması yeni bir HTTP bağlantısı üzerinden cURL, teşekkürler yolu Solr istemci kitaplığı yazılmış.

Peki, sorum şu:

  1. CURL keepalive bir oturum açmak için yapılmış olabilir?
  2. Bu bağlantıyı yeniden kullanmak için ne gerekir? -- cURL kaynak kolu yeniden kadar basit mi?
  3. Herhangi bir özel cURL seçeneklerini ayarlamak gerek var mı? (örneğin kuvvet HTTP 1.1?)
  4. Keepalive bağlantı cURL ile herhangi bir frikiklerinden var mı? Bu komut bir seferde saatlerce çalışır; tek bir bağlantı kullanmak mümkün olacak, ya da periyodik olarak yeniden gerekir.

CEVAP
11 HAZİRAN 2009, PERŞEMBE


diyor ki: PHP belgeleri (curl_setopt) kıvırın

CURLOPT_FORBID_REUSE - TRUE zorla bağlantı açıkça kapatmak için işlem tamamlandığında, ve yeniden toplanmış değil.

Yani:

  1. Evet, aslında yeniden kullanmalısınız varsayılan olarak bağlantıları
  2. sen cURL kolu yeniden kullanın.
  3. varsayılan olarak, cURL kendisi tarafından kalıcı bağlantılar kolları; bazı özel başlıkları, kontrol CURLOPT_HTTPHEADER gerekir
  4. sunucu canlı tutma zaman aşımı (Apache varsayılan olarak, 15 saniye veya hangisi önce gelirse 100 kişi) gönderebilir ama cURL sadece bu olduğu zaman başka bir bağlantı açar.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • backyardjay

    backyardjay

    8 ŞUBAT 2009
  • Jordie Jordan

    Jordie Jorda

    27 Ocak 2008
  • Liz Morgan

    Liz Morgan

    4 Aralık 2011