2013-03-29 3 views
0

Когда пользователь регистрируется на моем сайте, управляемом php, скрипт регистра должен выполнять несколько задач, некоторые из которых занимают больше времени, потому что им приходится обращаться к сторонним серверам.PHP fork чрезмерная задача

Как я могу развить эти задачи в стороне от основного сценария php, чтобы пользователь сразу увидел результат?

+0

возможно дубликат [Как я могу запустить PHP скрипт в фоновом режиме после отправки формы?] (Http://stackoverflow.com/questions/4626860/how-can-i-run- a-php-script-in-the-background-after-a-form-is-представлен) – Brad

ответ

2

Вы можете create a child process или просто создать очередь в своей базе данных или небольшом файле и запустить cronjob. Вы также можете создать дочерний процесс, запустив exec().

exec('php /path/to/script.php'); 
+0

Есть несколько проблем с этим - см. http://stackoverflow.com/questions/2212635/best-way-to-manage -длинный-обкатка PHP-скрипт/2215188 # 2215188 – symcbean

0

Не уверен, что вы хотите сделать ...

вы можете выполнить Экстерн PHP скрипт с ехес ('PHP myScript.php');

Но чем пользователь не получить результат этого сценария, потому что пользователь получает только результат основного PHP скрипта ...

Если вы хотите, чтобы пользователь результата всех выполняемых скриптов чем вы должны использовать Ajax звонки

0

Предполагая, что вы счастливы, чтобы отправить ответ пользователю независимо от запросов 3-й партии ....

Если вы ignore_user_abort() и послать заголовок ("Connection: закрыть «); и очистить выходной буфер, тогда вы можете просто вызвать удаленные сайты через register_shutdown_function(). Если требуется обработать более одного удаленного запроса, используйте функции curl_multi для их параллельного запуска.

0

Если запросы 3 участника не требуется, чтобы отобразить страницу, вы всегда можете раскошелиться на PHP скрипт в фоновом режиме, делая

shell_exec ('эхо/USR/BIN/PHP -q myLongScript. php | at now ');

Вместо разветвление новый экземпляр для обработки регистрации третьей стороной каждый раз, когда новый пользователь регистрируется, вы можете также рассмотреть вопрос о хранении информации в таблице базы данных и обрабатывать регистрации 3-й партии через заданные интервалы времени с помощью PHP cronjob сценария.

Run PHP through Cron job

Смежные вопросы