Запустите несколько файлов PHP с помощью командной строки PHP или SSH


У меня 137 php-файлов, я хочу запустить их одной командой (параллельно), а не последовательно. Но проблема в том, что каждый файл занимает 2-5 секунд. Поэтому я попытался создать файл (.sh) и поместить каждую строку как:

/usr/bin/php /files/file1.php
/usr/bin/php /files/file2.php
/usr/bin/php /files/file3.php

Он завершит файл1, а затем последовательно запустит файл2 и файл3. Поэтому, пожалуйста, назовите команду php или sh для запуска 137 файлов php одним щелчком мыши (параллельно).

Author: Qantas 94 Heavy, 2012-07-08

3 answers

Вы помещаете их в фоновый режим.

for ($i=1; $i<=137; $i++) {
    exec("/usr/bin/php /files/file$i.php > /dev/null 2>&1 &");
}
 4
Author: xdazz, 2012-07-08 08:09:48

Запустите сценарии в фоновом режиме, добавив "nohup" и "&"

nohup /usr/bin/php /files/file1.php &
nohup /usr/bin/php /files/file2.php &
nohup /usr/bin/php /files/file3.php &
 1
Author: Mendhak, 2012-07-08 08:11:25

Вы можете использовать библиотеку pcntl, которая включает потоки в php, вы можете использовать ее и создать php-мастер-файл, который вызовет другой, а затем вы можете создать мастер-файл из командного файла

 0
Author: ManMohan Vyas, 2012-07-08 08:11:27