Асинхронный запуск PHP-скриптов
Для сбора и обработки различной информации на сервере приходится запускать некоторое количество скриптов-автоматов. Работа некоторых из них может занимать достаточно продолжительное время, поэтому приходится использовать параллельный запуск сразу нескольких процессов. В PHP нет штатных функций для асинхронного запуска процессов, для этого я применяю вот такой нехитрый трюк с использованием cURL.Code (PHP) : Убрать нумерацию
- // Адрес вызываемого скрипта и параметры его запуска
- $url='http://example.com/process.php';
- $param1='dummy';
- $param2='foobar';
- $ch=curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
- curl_setopt($ch, CURLOPT_HEADER, FALSE);
- curl_setopt($ch, CURLOPT_POST, TRUE);
- curl_setopt($ch, CURLOPT_POSTFIELDS, 'param1='.$param1.'¶m2='.$param2);
- // Не ждем результат выполнения запускаемого скрипта, выполнение
- // основного процесса прекращается по таймауту
- curl_setopt($ch, CURLOPT_TIMEOUT, 3);
- curl_exec($ch);
- curl_close($ch);
- // Обработчик запущен, можно переходить к запуску следующего процесса
При таком режиме запуска возникает небольшая проблема с получением обратной связи от запущенных скриптов. Я решил ее просто: результаты записываются в лог-файл и в специальную таблицу базы данных. Анализом результатов занимаются следующие обработчики, но это уже совсем другая история.
Просмотров: 2690 | Комментариев: 0
Метки: PHP
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
Комментариeв нет
Добавить комментарий
Заполните форму для добавления комментария