Ярослав
Новичок
Приветствую!
Есть никий скрипт, назовем его handler.php. По окончании работы handler.php через 10 секунд должен выполниться другой скрипт (callback.php). Очень критично чтобы handler.php выполнился как можно быстрее и отдал результат пользователю.
Как пытался решить:
идет запрос на handler.php. Он отрабатывает, и дальше разрыв соединения, скидываем буфер, текст отправляеться клиенту
sleep(10)
и запуск callback.php
Когда запрос идет из браузера, все отлично отрабатывает, пользователь получает результат, скрипт ждет, и потом выполняеться callback.php. Почти все довольны, за исключением апача, которому приходиться держать процесс в памяти. Но если скрипт handler.php запрашивать не из браузера, а к примеру через file_get_contents, то приходиться ждать 10секунд, и только потом получим весь результат. Потому что тут конекция уже контролируеться на уровне сокета.
Вопрос: Как организовать работу такого выполнения скрипта с задежкой? Очень желательно чтобы скрипт handler.php отработал и сразу завершился (т.к. много процесов апача не к добру), а через 10 сек запустился callback.php
Еще варианты которые обдумываю:
- делать через крон: после окончания скрипта handler.php запись в базу параметров для скрипта и через 10 сек дергаем калбек. Крон минимум 1 минута, но можно выкрутиться и поставить 10 сек.
- ...
Есть никий скрипт, назовем его handler.php. По окончании работы handler.php через 10 секунд должен выполниться другой скрипт (callback.php). Очень критично чтобы handler.php выполнился как можно быстрее и отдал результат пользователю.
Как пытался решить:
идет запрос на handler.php. Он отрабатывает, и дальше разрыв соединения, скидываем буфер, текст отправляеться клиенту
sleep(10)
и запуск callback.php
Когда запрос идет из браузера, все отлично отрабатывает, пользователь получает результат, скрипт ждет, и потом выполняеться callback.php. Почти все довольны, за исключением апача, которому приходиться держать процесс в памяти. Но если скрипт handler.php запрашивать не из браузера, а к примеру через file_get_contents, то приходиться ждать 10секунд, и только потом получим весь результат. Потому что тут конекция уже контролируеться на уровне сокета.
Вопрос: Как организовать работу такого выполнения скрипта с задежкой? Очень желательно чтобы скрипт handler.php отработал и сразу завершился (т.к. много процесов апача не к добру), а через 10 сек запустился callback.php
Еще варианты которые обдумываю:
- делать через крон: после окончания скрипта handler.php запись в базу параметров для скрипта и через 10 сек дергаем калбек. Крон минимум 1 минута, но можно выкрутиться и поставить 10 сек.
- ...