Apache / mod_php Eşzamanlı yürütme?

0 Cevap php

i am currently working on an MVC webframework with a very special feature. Layouts defined in XML files are seperated into content blocks that can be arranged/cached/loaded individually.

Her içerik bloğu (bu birkaç sayfa yeniden kullanılır, örneğin footer olabilir) kendi Kontrolörü çeşit var. Ben Blockcontroller diyoruz.

Bu kontrolör (böylece kaynak Modeller aracılığıyla DB istekleri, bir HTTPClient modeli ile harici API istekleri dahil) ilgili kodu çalıştırır.

Bu çerçeve çok sayıda datasources söz konusu çok karmaşık ortamlarda kullanılmak üzere tasarlanmıştır. Bu expecially birkaç Veritabanı sunucuları ve REST API olacaktır.

Şimdi amaç sayfa teslim hızlandırmak için eşzamanlı olarak bu tür içerik blokları çalıştırmaktır.

Örnek:

A Webinterface needs to fetch your address book from Google Mail, Facebook, Twitter and 10 other sources, do some matching and calculations. Every requests takes about 1 second. This adds up to 15 seconds if done sequentially.

Hedef (. Zaman evet, bu daha çok bir modele gitmek gerekir ama mantık çoğu bu xml dosyalarında tanımlanan gibi blok seviyede tutmak istiyorum. Onlar sadece hayır çıktı üretmek) her şey için bir blok tanımlamak ve "eşzamanlı yürütme" bayrağı 1'e set.

Gerekli nitelik olarak her şeyi bu eşzamanlı Blokları toplanır, bu yüzden hepsi bittiğinde yürütmek için Begines ve veriler mevcut son içeriği bloğu. Böyle bir şey:

<block template="blank.phtml" block="twitter.php" concurrent="1" name="twitter"/>
<block template="blank.phtml" block="gmail.php" concurrent="1" name="gmail"/>
<block template="blank.phtml" block="facebook.php" concurrent="1" name="facebook"/>
<block template="stats.phtml" block="statistics.php">
    <depends>twitter</depends>
    <depends>gmail</depends>
    <depends>facebook</depends>
</block>

Ayrıştırıcı aslında eşzamanlı yürütülmesi için işaretlenir ve bir sıra ile bir dizi araya bloklar için düzen xml ilk fiels ve taramalar bir görünüme sahiptir ve her kuyruk noktası birden fazla girdi olabilir. Onlar Bağımlılık sırayla arragend edilir.

Bir şey hiçbir bağımlılık vardır Yani bu kesinlikle çok ilk pozisyonda kuyruk grubuna girer. Bu gruptan bir şey değişir her şey böylece ikinci positino ve gider ...

Veriler bir tek model haline saklanır.

Benim sorunum şimdi php için mod_cgi modülünde veya mod_fastcgi ile çalışıyor olduğunu, ancak sadece apaches mod_php tüm işler karışıyor.

I googled a bit and read that you should never use pcntl_fork with mod_php ... is there any alternative?

0 Cevap