@ekopach

Zend PDO_MYSQL: использование с pcntl_fork?

Пишу php демона с использованием pcntl_fork, постоянно выскакивает ошибка MySQL has gone away. Понятно что после exit() в дочернем процессе уничтожается соединение, но решение так и не могу найти...
В обычном mysql_connect то есть параметр new_link, который создает новое соединение, но много уж написано с Zend_Db.
Еще думал вместо exit использовать posix_kill(posix_getpid(), SIGTERM) - но заметил что тогда зомби-процессы порождаются.
  • Вопрос задан
  • 2691 просмотр
Пригласить эксперта
Ответы на вопрос 1
fornit1917
@fornit1917
Соединение с БД надо устанавливать после форка, в каждом процессе - свое.
Не знаток зенда, но думаю что там можно явно понять, в какой момент происходит установка соединения с БД. И вот эти действия (приводящие к созданию подключения к БД) надо делать в каждом дочернем процессе отдельно.

Еще могу порекомендовать отказаться от форков вообще и "демонизировать" php с помощью supervisord. На мой взгляд гораздо лучше и удобнее решение, к тому же дополнительные плюшки получите из коробки.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы