Параллельное выполнение PHP-файлов

Рейтинг: 0Ответов: 2Опубликовано: 27.10.2014

Доброго.

Вот есть у нас 100 php-файлов, в каждом:

//для тестов
sleep(3);
//потом, что ни будь запишем в БД

Как можно выполнить код в php-файлах параллельно? Скажем, если последовательно, то придется ждать 5 минут. Параллельно - чуть более 3-х секунд.

Естественно, гуглил, и думал, как... знаю только include/required, но они последовательные.

P.S. Одна из тех тем, когда хочется создать левый ник на хэшкоде, чтобы не позориться. )

Обновление

Та-а-ак... Лыжи, оказывается, не едут и по тем примерам, ссылки на которые даны. И это для меня вообще тоска. Пример:

$ch1 = curl_init();
$ch2 = curl_init();
curl_setopt($ch1, CURLOPT_URL, "sleep1.php");//sleep(15); - 15 сек
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "sleep2.php");//sleep(20); - 20 сек
curl_setopt($ch2, CURLOPT_HEADER, 0);
$mh = curl_multi_init();
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);
$active = null;
do {
    $mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);

while ($active && $mrc == CURLM_OK) {
    if (curl_multi_select($mh) != -1) {
        do {
            $mrc = curl_multi_exec($mh, $active);
        } while ($mrc == CURLM_CALL_MULTI_PERFORM);
    }
}
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);

Печально, но в место 20 секунд выполнения скрипта он работает 35 (15+20)! Как, собственно, я в первом посте и описал.

Господа. Прошу, 1 рабочий пример. Верю, что может сработать, но рабочий код не видел.

Ответы

Ответов пока нет.