Задать вопрос
@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) - но заметил что тогда зомби-процессы порождаются.
  • Вопрос задан
  • 2692 просмотра
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    Профессия Графический дизайнер PRO
    15 месяцев
    Далее
  • Нетология
    Инженер по тестированию
    8 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
fornit1917
@fornit1917
Соединение с БД надо устанавливать после форка, в каждом процессе - свое.
Не знаток зенда, но думаю что там можно явно понять, в какой момент происходит установка соединения с БД. И вот эти действия (приводящие к созданию подключения к БД) надо делать в каждом дочернем процессе отдельно.

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

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

Похожие вопросы