Таймаут в socket_select

EugeneVB

Новичок
Всем привет!
Делаю сокет-сервер, в бесконечном цикле вызываю socket_select с таймаутом, равным нулю, в следствии чего выполнение кода останавливается до событий на сокетах.
Тут появилась потребность периодично(например раз в секунду) выполнять действие.
Можно вызывать socket_select с таймаутом 1, тогда каждую секунду будет выполняться итерация цикла и я смогу сделать необходимые действия.
Вопрос в том, сталкивался ли кто с таким использованием socket_select, не будут ли терятся изменения на сокетах?
 
Тут появилась потребность периодично(например раз в секунду) выполнять действие.
Можно вызывать socket_select с таймаутом 1, тогда каждую секунду будет выполняться итерация цикла и я смогу сделать необходимые действия.
Вопрос в том, сталкивался ли кто с таким использованием socket_select, не будут ли терятся изменения на сокетах?
Так делать можно, но не нужно - предпочтительней вынести необходимые действия в отдельный процесс, мне кажется.
 
Всем привет!
Делаю сокет-сервер, в бесконечном цикле вызываю socket_select с таймаутом, равным нулю, в следствии чего выполнение кода останавливается до событий на сокетах.
Тут появилась потребность периодично(например раз в секунду) выполнять действие.
Можно вызывать socket_select с таймаутом 1, тогда каждую секунду будет выполняться итерация цикла и я смогу сделать необходимые действия.
Вопрос в том, сталкивался ли кто с таким использованием socket_select, не будут ли терятся изменения на сокетах?
Теряться не будут,но лучше заведи отдельную нить
 
отдельный процесс конечно дело хорошее, тоже думал об этом,
но никогда не сталкивался с межпроцессным взаимодействием, даже не представляю каким образом это реализовать,
думал передавать данные через бд, но тогда опять же необходимо периодично проверять обновления
 
Или вы имели ввиду pcntl_fork, но пишут, что его использование не желательно
 
Если процесс не длительный, можно просто использовать неблокирующие сокеты.
 
да, неблокирующий режим работает хорошо, только обработку данных надо делать аккуратно, чтобы не задерживать обработку соединений
 
Сверху