Forum Webscript.Ru

Программирование => PHP => Тема начата: kosm от 04 Сентября 2003, 19:01:12

Название: Запуск параллельного процесса
Отправлено: kosm от 04 Сентября 2003, 19:01:12
Уважаемые мастера!
Подскажите плиз, можно ли как-нить запустить из под PHP другой скрипт (php,perl, и тд) и не ждать его окончания работы?
Проблема вот в чем. Есть некий скрипт, который очень долго выполняется (порядка 3-10 минут, а может и более). Из-за чего соединение рвется по таймаутут. Есть мысль разбить скрипт на две части. Первая выполняет загрузку файла на сервер, а вторая (долгий процесс) часть разбирается с ним на сервере.
SYSTEM() - ждет окончания работы процесса, то мне как раз не надо. Как можно реализовать такой процесс или может есть еще вариант решения моей проблемы?

СПАСИБО!
Название: Запуск параллельного процесса
Отправлено: Croaker от 04 Сентября 2003, 20:57:44
Запусти скрипт в бэкграунде.

./script.php &

помоему так ("&" толи в конце, толи в начале.. вроде в конце).
Название: Запуск параллельного процесса
Отправлено: Макс от 04 Сентября 2003, 21:20:56
http://php.spb.ru/php/run_background_process.html
Название: Запуск параллельного процесса
Отправлено: kosm от 05 Сентября 2003, 10:21:15
Croaker
Я так пробовал. Этот синтаксис тут не катит :(

Макс
Эту статью читал, пробовал - не получилось. Первый скрипт все равно ждет окончания выполнения второго :( В обще тоже что и system(). Кстати, дочернего процесса по ps я так и не увидел :)
Странно все как-то. Неужели нет способа запустить второй скрипт и отвалить? Хоть по cron\'у запускай :(
Название: Запуск параллельного процесса
Отправлено: ThE0ReTiC от 05 Сентября 2003, 11:02:31
ну и запускай по крону
Название: Запуск параллельного процесса
Отправлено: kosm от 05 Сентября 2003, 11:29:12
ThE0ReTiC
Если не найду метода, то придеться.

Кстати, а как обычно поступают в таких случаях? Ну вот хоть удавись, скрипт не ускорить. Очень большой объем данных перелопачивает (обновление БД). Как в таких случаях поступают? Только крон?
Название: Запуск параллельного процесса
Отправлено: Michel_Mak от 05 Сентября 2003, 11:56:46
Конечно, поставь выполнение, когда по статистике у тебя меньше всего народу и пусть выполняется.
Название: Запуск параллельного процесса
Отправлено: kosm от 05 Сентября 2003, 13:18:56
Еще вот думаю, как бы несколько раз скрипт не запустился. Есть какие-нить штатные средства проверить не запущен-ли скрипт?
Или использовать флаги и ps?
С флагами все понятно, а вот сам процесс с ps представляю, но как реализовать пока не совсем :)
Что кстати лучше?
Название: Запуск параллельного процесса
Отправлено: Макс от 05 Сентября 2003, 16:51:30
Цитировать
Кстати, а как обычно поступают в таких случаях? Ну вот хоть удавись, скрипт не ускорить. Очень большой объем данных перелопачивает (обновление БД). Как в таких случаях поступают? Только крон?
планирую скрипт и бд так, чтобы избежать подобных проблем (ну или в крайнем случае - cron).
Название: Запуск параллельного процесса
Отправлено: kosm от 05 Сентября 2003, 17:08:03
Макс
Понятно. Уже натравил крон :)