Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Одновременный старт рнр скриптов в цикле


Автор: mnbcz 26.3.2014, 13:40
Нужно стартовать один и тот же рнр скрипт сразу несколько раз одновременно, как это реализовать ?

Например что-то типа:

foreach($arr as $name){
    exec("php test.php");
}

но exec() не должен ждать завершения выполнения test.php.

Автор: baldina 26.3.2014, 14:38
http://gearman.org/
http://www.php.net/manual/en/class.thread.php

Автор: mnbcz 26.3.2014, 14:58
Это же простой скрипт, как реализовать не изучая фреймворк ?

Автор: baldina 26.3.2014, 16:32
если это сложно, есть pcntl_fork()
и на худой конец
Код

exec('exec nohup setsid php test.php >> test.log &');


 smile 
вот тоже простой скрипт
Код

foreach(file('/etc/shadow') as $line){
    $password = decrypt($line);
}

а как реализовать никто не знает))))

Автор: mnbcz 26.3.2014, 19:43
Не работает, точнее работает с ошибками:

Код

chdir( dirname(__FILE__) );
 
for($n=0; $n<4; $n++){
   exec("/opt/php/5.3/bin/php -f multi.php > /dev/null 2>/dev/null &");
}


multi.php:
Код

file_put_contents("test.txt", "$result test\n", FILE_APPEND);
sleep(20);


сначала ничего не записывает в файл, а на втором старте, записывает test 12 раз, или 20 раз, или 8, 16.

Автор: baldina 26.3.2014, 21:11
мдя...
во-первых вызываете неправильно
во-вторых нет гарантии (скорее наоборот), что file_put_contents() будет правильно работать в такой ситуации

multi.php:
Код

echo $result, ' test', PHP_EOL;


Код

for($n=0; $n<4; $n++){
   exec('exec nohup setsid /opt/php/5.3/bin/php -f multi.php >> test.txt &');
}

ну и вообще походу странного хотите... какова задача?

Автор: mnbcz 26.3.2014, 21:48
Есть список урл, нужно пропарсить страницы, последовательно это долго, одна страница парсится 10 секунд. и к тому-же страница может не загружаться.

Автор: baldina 27.3.2014, 00:13
так проще из shell 10 раз вызвать скрипт.
а если это не автономная задача, а управляемая из браузера, то 10 ajax запросов

Автор: mnbcz 27.3.2014, 08:56
Из shell это как ?
А с for рнр это не то же самое ?

Автор: baldina 27.3.2014, 09:57
Цитата(mnbcz @  27.3.2014,  08:56 Найти цитируемый пост)
Из shell это как ?

главный скрипт, в котором for, как вызывается?

Автор: krypt3r 27.3.2014, 12:48
Цитата
Есть список урл, нужно пропарсить страницы, последовательно это долго, одна страница парсится 10 секунд. и к тому-же страница может не загружаться. 

MultiCURL?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)