Süreç aynı anda beslemeleri

3 Cevap php

Ben bir dikey arama motoru geliştiriyorum. Bir madde için bir kullanıcıları arar, sitemiz çeşitli pazarlardan çok sayıda beslemeleri yükler. Ne yazık ki, bu, yük ayrıştırmak ve hızlı bir şekilde yem içeriğini sipariş için uzun bir zaman alır ve kullanıcı bazı gecikme yaşar. Ben db bu yayınları kaydetmek veremezsiniz yemlerin içeriği sürekli değişiyor çünkü onları önbelleğe alabilir.

Ben mutliple PHP aynı anda aynı anda besleniyor işleyebilir bir yolu var mı? Ben popen kullanabilir ya da orada daha iyi bir php paralel işleme yöntemi gerekir?

Teşekkürler!

Russ

3 Cevap

If you are using curl to fetch the feeds, you could take a look at the function curl_multi_exec, which allows to do several HTTP requests in parallel.
(The given example is too long to be copied here.)

Yani en azından beslemeleri getiriliyor az zaman harcamak için izin verecek ...


Considering you server is doing almost nothing when it's waiting for the HTTP request to end, parallelizing those wouldn't harm, I guess.
Parallelizing parsing of those feeds, on the other hand, might do some damages, if it's a CPU-intensive operation (might be, if it's XML parsing and all that).


As a sidenote : is it really not possible to cache some of this data ? Event if it's only for a couple of minutes ?
Using a cron job to fetch the most often used data and store it in cache, for instance, might help a lot...

Ve ben yanıt bir web sitesi fast Siteniz yanıt vermezse, başka bir yere gidersiniz ... ikinci sonuçlarına tarihe kadar gerçekten daha kullanıcılara daha önemli olduğuna inanıyoruz!

Ben insanlar çok erken bir halsiz tepki süresi affedecek daha önbelleğe alma bağışlayacağım, katılıyorum. Sadece dakika her çift önbelleğe alır.

Eğer kurulum için JavaScript aracılığıyla sunucuya karşı birden fazla eşzamanlı istekleri yürütür bir sonuç sayfası olacak. Basit bir AJAX isteği ile bunu gerçekleştirmek ve yükleme bitmiş bir kez daha sonra DOM'ye döndürülen veri enjekte edebilir. PHP'nin, diş için herhangi bir destek yok. Istekleri parallelizing anda tek çözümdür.

Here's some examples using jQuery to load remote data from a website and inject it into the DOM: http://docs.jquery.com/Ajax/load#urldatacallback