Хотелось бы реализовать общение между двумя процессами на сервере через средства php для реализации long-pooling.
Для этой цели php был собран с ключами --enable-sysvsem --enable-sysvshm --enable-sysvmsg
Предполагается, что работать это будет следующим образом: пока клиент находится на странице, ему отправляются асинхронные запросы средствами ajax. Скрипт на стороне сервера открывает очередь сообщений с помощью msg_get_queue. И слушает её определенное количество времени, например, 2 минуты. После чего процесс отмирает и отправляется новый запрос. При получении же данных, они отправляются клиенту.
Однако, возник ряд вопросов:
-Влияет ли функция set_time_limit на вызов функции receive_messages, или она считается системной, поскольку работает через разделяемую память SysV? Потому что у стандартной функции read_message нет параметра timeout, что очень огорчает.
-Можно ли настроить скрипт выполнять определенные действия перед отключением? Очень бы хотелось "гасить" очередь, которая больше не будет использоваться. Если нет, то можно ли снаружи как-то "отстреливать" очереди, с котрыми ни один процесс долго не работал?
P.S. фреймворки не предлагать.
P.P.S. Если вы знаете, что long-poll можно реализовать лучше\проще\удобнее - можете гордиться этим то скажите сразу, будет ли этот вариант нагружать сервер, на котором уже крутится инстанс апача и php-машины и насколько удобно интегрировать подобное решение в уже существующую систему.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей