Здравствуйте,Есть авторизованные юзеры (при помощи сессии). Стоит задача отправлять смс. Т.к. процесс отправки смс достаточно долгий (20-40сек) хочется что бы юзеру не требовалось сидеть с зависшим браузером и ожидать окончание отправки.
Сделал отдельную функцию отправки sms и зарегистрировал её в register_shutdown_function. SMS отправляется в самом конце(как и положено) и я даже успеваю показать юзеру какую-то другую страничку. Однако, когда обрабатывается сама функция отправки сообщения, браузер продолжает висеть. Если в начале скрипта добавить session_regenerate_id, то юзер может продолжить навигацию (вроде как я хотел), однако юзер разлогиневается (сессия теряется). Возможно это еще приколы настройки моего php.ini, однако мало в это верится.
Распаралеливание на стороне клиента (ajax, новое окно браузера) не предлагать.
Как вариант, можно вызвать на стороне сервера /usr/bin/php /var/www/sendsms.php & > /dev/null (но мне этот вариант тоже не очень нравится, т.к.
1) разрешать php исполнять файлы (exec, system) операционной системы - косяк в безопасности
2) не запустится на чужом хостинге (для меня не так важно, ибо у меня свой хост)