PHP asenkron HTTP istekleri

2 Cevap php

Tepkisini dışarı atma olmadan PHP uyumsuz bir HTTP isteği yapmak için herhangi bir aklı başında bir yolu var mı? Yani, AJAX benzer bir şey - PHP komut isteği başlatır, bir geri çağırma işlevi / yöntem veya başka bir komut yanıtı kolları, yanıt alındığında, daha sonra kendi şey ve bu yok.

Bir yaklaşım aklımdan geçti - her istek için başka bir komut ile yeni bir php süreç yumurtlama - ikinci komut isteği, yanıt bekler ve sonra veriyi ayrıştırır ve yok yok ne olursa olsun özgün senaryo yeni süreçleri yumurtlama devam ederken, gerektiği . Ben şüphelerim var olsa da, bu durumda performansı hakkında - yeni bir süreç her zaman oluşturmak için sahip bazı performans cezası olmalı.

2 Cevap

Evet, sitenizin trafiğine bağlı olarak bir komut dosyası çalıştırmak için ayrı bir PHP işlem üretmekten yıkıcı olabilir. Bu zaten bildiğiniz bir dosya için çıkış kaydeder bir arka plan işlemi başlatmak için shell_exec () kullanmak daha verimli olacaktır, ama bu bile kaynak yoğun olabilir.

Ayrıca bir veritabanında saklanan bir istek sırası olabilir. Tek, ayrı bir arka plan işlemi, işi çekin çalıştırmak ve çıktısını kaydetmek, muhtemelen web süreç kontrol edebilir DB bir bayrak ayarı olacaktır.

Eğer DB sıra yaklaşımı kullanmak için gidiyoruz eğer, bir kerede tüm sıraya istekleri göndermek için * fonksiyonların sınıfını curl_multi kullanın. Bu uzun isteği zaman için plan sürecinde her yinelemenin yürütme süresini sınırlayacaktır.

V5 dişli olmayabilir, ancak işlemdeki multitasking istismar uygulamaları oluşturabilirsiniz.

Check out the following article: "Develop multitasking applications with PHP V5" from IBM DeveloperWorks. You can find it here http://www.ibm.com/developerworks/web/library/os-php-multitask/