CURL tarafından kullanılan eş zamanlı bağlantıları sınırlamak için nasıl

3 Cevap php

PHP (ve cURL) kullanarak basit bir web gezgini yaptı. Bu rougly 60 000 html sayfaları ayrıştırır ve (bir intranet üzerinde bir alet) ürün bilgilerini alacak.

Benim ana endişe eşzamanlı bağlantı olduğunu. Ben bağlantı sayısını sınırlamak istiyorum, bu yüzden ne olursa olsun, paletli fazla 15 eşzamanlı bağlantıları kullanmak asla.

Sunucu blok IP IP 25 eşzamanlı bağlantı sınırına ulaşıldığında ve nedense, ben sunucu tarafında değiştirmek değil, bu yüzden benim komut X eşzamanlı bağlantı daha asla kullanmayın yapmak için bir yol bulmak zorunda zaman .

Bu mümkün mü?

Ya da belki başka bir dilde şeyi yazmanız lazım?

Herhangi bir yardım takdir, teşekkür ederim!

3 Cevap

iyi sen curl_set_opt(CURLOPT_MAXCONNECTS, 15); bağlantı sayısını sınırlamak için kullanabilirsiniz. Ama aynı zamanda sizin için bunu yapmak yoksa basit bir bağlantı yöneticisi yapmak isteyebilirsiniz.

Belki basit bir bağlantı tablo yazmak:

target_IP           |   active_connections

1.2.3.4                 10
4.5.6.7                 5

Her cURL çağrı, bağlantı sayısını artırmak her yakın azaltmak olacaktır.

Sen hız için bir mySQL tablo tablo saklamak, ya da bir Memcache olabilir.

Zaten maksimum bağlantıları olan bir IP karşılaştığınızda, bir "daha sonra deneyin" kuyruk uygulamak zorunda kalacak.

another question Benim cevabım curl_multi_ * ile bunu yapmak için bazı kod vardır.