ilyaplot
@ilyaplot
PHP программист

Каким же способом реализовывать форки в PHP?

Вот хочу написать демона, работающего в несколько потоков. fork нестабилен, exec как то с «детства» навеивает на мысль об огромной дыре в безопасности. Может есть нормальные способы?

Хорош ли для управления потоками gearman?
  • Вопрос задан
  • 3815 просмотров
Решения вопроса 1
s3ek
@s3ek
Fork это который pcntl_fork? Реализовывал как-то именно с помощью его многопоточность, проблем замечено не было.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@cat_crash
Задавался этой же целью. Рекомендую к прочтению: habrahabr.ru/blogs/php/40432/
Ответ написан
AotD
@AotD
PHP, Redis, Postgresql
fork из pcntl_fork так же нестабилен как и обычный Сишный форк. Ни больше ни меньше.
В дочерних процессах контролируем падение по любой ошибке, в том числе ошибке интерпретатора, корректно завершаем процесс с кодом возврата.

Код возврата анализируем в родительском процессе, чтобы определить сдох хомяк естественной смертью или его порвало от капли никотина.

Можно использовать ум предшественников и воспользоваться готовыми решениями: phpdaemon.net/
При должной сноровке и отсутствии боязни пересборки php эта штука не только будет префоркать нужное количество воркеров, но и делать горячую замену кода прямо во время выполнения.

Или nanoserv.si.kz/ — чуть проще, понятней для начала, но для 70% задач и его хватит с головой
Ответ написан
Комментировать
@sandrain
Хорош ли для управления потоками gearman?


Проблем не наблюдалось, всем довольны до сих пор.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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