2013-05-02 4 views
3

Я пытаюсь запустить несколько скриптов php в Parallel. Я запускаю WAMP, что означает легкий доступ к bash или cronjobs. Отсюда попытка сделать эту работу только с использованием php.PHP-скрипт для параллельного запуска нескольких php-скриптов

<?php 
include("test2.php"); 
include("test3.php"); 
include("test4.php"); 
?> 

, но тестовые файлы имеют команду ожидания перед выдачей строки кода. Когда я запускаю это, он ждет, пока каждый отдельный php завершит свое время ожидания, прежде чем двигаться дальше. Я хочу, чтобы они все работают одновременно (параллельно)

Я также попытался

system('C:\wamp\bin\php\php5.4.3 test2.php &'); 

Цель состоит в том, чтобы скрипт запускать эти скрипты параллельно, ждать их, чтобы завершить работу параллельно и выход эхо, которое заканчивается. Я что-то упускаю?

+1

Windows = Планировщик заданий, Linux = bash/Cron –

+0

Хорошо, будь то, что может. Я пытаюсь скомпоновать это в рамках одного сценария, способного перемещать его с компьютера на компьютер, не настраивая задачи ... – SuperMar1o

+0

В этом случае .. Если ваш желающий PHP обрабатывает все вместе, к сожалению, это не произойдет. PHP работает от строки 1 до конца обработки. Так что, по сути, ваша первая включает в себя, будет обработана. Затем вывод, затем ваш второй включится, будет обработан, а затем выведен, и, наконец, будет обработан ваш последний включенный, а затем вывод данных –

ответ

0

Почему никто никогда не упоминает использование iframe. Genius!

<IFRAME SRC="example1.php" WIDTH=0 HEIGHT=0></IFRAME> 
<IFRAME SRC="example2.php" WIDTH=0 HEIGHT=0></IFRAME> 
<IFRAME SRC="example3.php" WIDTH=0 HEIGHT=0></IFRAME> 

Может запускаться из файла PHP и запускать сразу несколько сценариев. DOH. Точно то, что мне нужно и работает как шарм

+2

i кадры - ужасная идея, что такое точка браузера, тезисы должны вызываться через командную строку. – 2013-05-02 03:43:22

+0

с использованием iframes означает, что они могут запускаться из одного файла php, одновременности загрузки и когда это делается. Я могу просто загрузить другой файл php с помощью javascript window.onload. Да, грязный и технически неправильный способ сделать это, но иногда все это имеет значение. – SuperMar1o

+0

как система() не работает? – 2013-05-02 03:50:19

0

Насколько я знаю, PHP интерпретируется и выполняет оператор кода по инструкции.

CURL или readfile() могут поддерживать эхо-контент по мере его потока, но только после завершения вызова. Решение iframe будет работать; альтернативно javascript для вызова страниц асинхронно; вы можете запустить команду bash с backticks ``, но она не переносима и не подходит.

Вот вариант сценария оболочки: https://serverfault.com/a/456498

2

Еще одна вещь, чтобы думать о том, если вы хотите, чтобы это бежать по кругу, просто добавьте в заголовок. Он будет ожидать загрузки iFrames, а затем перейти на следующую страницу.

<body onload=window.location='parsethem.php'> 
Смежные вопросы