[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запустить скрипт не дожидаясь ответа
true_creator
Друзья, помогите советом.
Мне необходимо чтобы index.php запускал script.php и, не дожидаясь что он ответит, продолжал работу.
index.php обрабатывает submit формы и отправляет скрипту script.php введённые параметры. script.php выполняет два трудоёмких SQL запроса, сравнивает результаты и отправляет их на email. index.php в свою очередь просто сообщает "Ваш запрос отправлен на обработку" и не ждёт пока script.php завершит работу.
Как это лучше реализовать?




Спустя 14 часов, 25 минут, 18 секунд (16.01.2010 - 09:04) vital написал(а):
Просто сокетом(или cURL'ом) послать POST (или GET) запрос скрипту.. Примеров много в гугле..

Спустя 6 минут, 58 секунд (16.01.2010 - 09:11) vagrand написал(а):
vital

Насколько я знаю cURL ожидает ответа на запрос.

true_creator

Если сайт работает на linux сервере то советую переделать script.php в CLI скрипт и запускать его в бекграунде:
./script.php &

Спустя 22 минуты, 31 секунда (16.01.2010 - 09:34) vital написал(а):
Цитата

Насколько я знаю cURL ожидает ответа на запрос.

Не обязательно. Опционально=)

Спустя 10 часов, 2 минуты, 4 секунды (16.01.2010 - 19:36) true_creator написал(а):
vital
Никак не могу найти нужную опцию чтобы не дожидаться ответа.
Пытаюсь использовать curl_multi_* функции. Пока не получается smile.gif

Спустя 5 часов, 59 минут, 53 секунды (17.01.2010 - 01:36) Alex VoDevil написал(а):
exec() и подобные функции на хосте запрещены?

Спустя 1 день, 16 часов, 38 минут, 9 секунд (18.01.2010 - 18:14) Johnny написал(а):
возможно стоит вызывать script.php не в index.php, а аяксом, со страницы формы, передавая ему нужные параметры? как сильно он зависим от index.php ?

Спустя 1 час, 14 минут, 59 секунд (18.01.2010 - 19:29) VolCh написал(а):
Как вариант (если нет доступа к exec и т. п.):
index.php помещает запрос на обработку в очередь (файлы, БД, ОЗУ даже), а обрабатывает запрос очередь скрипт, вызывающийся по крону.

Спустя 6 часов, 58 минут, 23 секунды (19.01.2010 - 02:27) true_creator написал(а):
Хотел решить задачу через exec(), но хостер не позволил. В итоге решил задачу при помощи ajax.
Вывод - чтобы писать что-то серьёзное на php надо брать выделенный сервер чтобы на нём можно было поднимать всяко рода приблуды, которые бы позволяли Php быть более менее нормальным языком программирования smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.