такая: через cron запускается раз в 10 минут некоторый процесс, который порождает дочерние. В один момент в системе находятся порядка 200-ста процессов.
После первого порождения 200-сот процессов родительский процесс ожидает в цикле завершение первого из дочерних. Как только тот завершился - запускается 201-ый, как только завершился второй - запускается 202-ой. В общем, в среднем, в системе всегда порядка 200-ста процессов. Всего, суммарно, около 1000 задач выполняется.
Раньше использовал pcntl_fork, затем (исходя из того, что работа ведётся в Symfony) перешёл на Symfony Process. Но на удивление с ростом нагрузки Symfony Process перестал справляться и пришлось вернуться к pcntl_fork.
Сейчас вот думаю в сторону pthreads. Кто-нибудь работал? Для такой задачи как у меня, как думаете, стоит ли переходить на него?
эти штуки же разные функции выполняют >Symfony Process перестал справляться и пришлось вернуться к pcntl_fork. какие симптомы? не успевает в 10 минут? если есть уже подготовленные данные можно попробовать форком, чтобы 2 раза выборки нужные не делать
Выбирая между pcntl_fork и pthreads, я бы выбрал для этой задачи golang
Обсуждают сегодня