Süreç PHP / Apache iyi bir fikir bölmek mi?

3 Cevap php

Ben bazen MySQL güncellemeleri oldukça yoğun bir dizi yürütmek için gereken PHP basit bir uygulama yazıyorum. Ben özellikle bu kullanıcı için bir gecikmeye neden istemiyorum, bu yüzden pcntl_fork () kullanımı hakkında merak ediyorum.

Ama bu gerçekten nasıl çalıştığını emin değilim: çocuk süreç ana süreç tamamlandıktan sonra yayınlanmaya devam edecek mi? Will ana sürecin sonu ve çocuk süreç tamamlanmadan önce tamamen tam kullanıcının sayfa yükleme?

Diğer bir deyişle, bu (Apache altında çalışan) bir PHP komut kullanıcıyı geciktirmeden biraz zaman alıcı güncellemeleri yapmak, ya da sadece bazı gecikme ile koymak benim kullanıcıları sormalısınız için güvenli bir yoldur?

3 Cevap

Üst süreç kullanıcının sayfasında çocuk süreç devam edecek, tam yük olacak, sona erecek ve kullanımı çocuk süreç başarıyla bitmiş olsun veya olmasın hiçbir geri bildirim olacaktır.

Orada birisi muhtemelen apache altında diyorsun ama şansını apache ve php kullandığınız hangi sürümlerinde ve kombinasyonları bağlı olarak her zaman doğru değildir cevaplar alırsınız vardır ne olur ayrıntılı olarak söyleyebilirim. Sen ajax kullanmak ve iki istekleri olmalıdır. Bir ajax arama anket durumu ve nerede aslında işi yapmak için ikinci bir istek ile daha sonra yapıyor ve ne diyor sayfası ile bir kez yanıt.

Mod_php modül çatallaşma hiç çalışmaz gibi PHP Apache altında çalışıyorsa, o fonksiyonu * pcntl_fork () * tanımsız olduğunu söyleyerek bir uyarı alırsınız. Bu durumda iyi bir çözüm komut satırını kullanarak ayrı bir php işi çalıştırmak yerine exec() kullanmaktır.