The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"PHP register_shutdown_function виснет браузер"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (PHP)
Изначальное сообщение [ Отслеживать ]

"PHP register_shutdown_function виснет браузер"  +/
Сообщение от VArtem (ok) on 27-Дек-11, 02:39 
Здравствуйте,

Есть авторизованные юзеры (при помощи сессии). Стоит задача отправлять смс. Т.к. процесс отправки смс достаточно долгий (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) не запустится на чужом хостинге (для меня не так важно, ибо у меня свой хост)

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "PHP register_shutdown_function виснет браузер"  +/
Сообщение от ne4to (ok) on 27-Дек-11, 13:50 
>[оверквотинг удален]
> отправки смс достаточно долгий (20-40сек) хочется что бы юзеру не требовалось
> сидеть с зависшим браузером и ожидать окончание отправки.
> Сделал отдельную функцию отправки sms и зарегистрировал её в register_shutdown_function.
> SMS отправляется в самом конце(как и положено) и я даже успеваю
> показать юзеру какую-то другую страничку. Однако, когда обрабатывается сама функция отправки
> сообщения, браузер продолжает висеть.  Если в начале скрипта добавить session_regenerate_id,
> то юзер может продолжить навигацию (вроде как я хотел), однако юзер
> разлогиневается (сессия теряется). Возможно это еще приколы настройки моего php.ini, однако
> мало в это верится.
> Распаралеливание на стороне клиента (ajax, новое окно браузера) не предлагать.

таблица очереди смс .. по которой кроном проходит скрипт и отправляет смс ?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "PHP register_shutdown_function виснет браузер"  +/
Сообщение от JohnProfic (ok) on 28-Дек-11, 19:54 
http://php.net/session_write_close ?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "PHP register_shutdown_function виснет браузер"  +/
Сообщение от VArtem (ok) on 27-Янв-12, 18:41 
> http://php.net/session_write_close ?

Огромное спасибо. Реально помогло!!

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру