Таймаут очереди сообщений php

334
03 апреля 2017, 08:28

Хотелось бы реализовать общение между двумя процессами на сервере через средства 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-машины и насколько удобно интегрировать подобное решение в уже существующую систему.

READ ALSO
обработать json данные

обработать json данные

получаю ответ от api яндекс диска но дальше проблема не могу преобразовать json такой ответ имею

269
Лямбды, потоки и статические переменные

Лямбды, потоки и статические переменные

Предположим, что такое использование статической переменной как счетчика входов в лямбда-функцию легально:

437
Как правильно наследовать класс?

Как правильно наследовать класс?

Создаю класс Stack, который наследует LinkedList, но выдает ошибку еще при компиляции, подскажите, в чем проблема

328
Qt connect с разными аргументами

Qt connect с разными аргументами

Здравствуйте! Как сделать connect с разными аргументами (qint64 и int)?

265