İşte ben ne yapıyorum kısa bir bakıştır, o gerçekten oldukça basittir:
- Dışarı çık ve bir veritabanı tablosundan kayıtları getirmesi.
- Tüm bu kayıtlar arasında bir URL (cURL kullanarak) dışarı çıkmak ve emin URL hala geçerli olduğundan emin olun içeren her sütun için yürüyün.
- Her kayıt için bir sütun son kontrol edildi ve diğer bazı db işlem gerçekleştiği zaman gösteren güncel bir zaman damgası ile güncellenir.
Zaten tüm bu iyi ve güzel çalışıyor ve gerekiyordu tam olarak ne yapar. Sorun performans greatly Ben cURL ile URL doğrulama am nasıl açısından gelişmiş olabileceğini düşünüyorum.
İşte cURL nasıl kullanıldığını gösteren benim kodundan alıntıda (basitleştirilmiş) üzerinden bir özeti:
$ch = curl_init();
while($dbo = pg_fetch_object($dbres))
{
// for each iteration set url to db record url
curl_setopt($ch, CURLOPT_URL, $dbo->url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch); // perform a cURL session
$ihttp_code = intval(curl_getinfo($ch, CURLINFO_HTTP_CODE));
// do checks on $ihttp_code and update db
}
// do other stuff here
curl_close($ch);
Ben sadece aynı cURL süre boyunca idare yeniden yaşıyorum görmek ama gibi tüm işlem üzerinde şerit (veritabanı veya başka türlü) bile komut hala çalıştırmak için inanılmaz uzun sürer. CURL seçeneklerden herhangi performansını iyileştirmeye yardımcı değişiyor misiniz? Tuning zaman aşımı değerleri / etc? Herhangi bir giriş mutluluk duyacağız.
Teşekkür ederim,
- Nicholas