Выполнение нескольких скриптов PHP параллельно и уведомление при завершении

Итак, это то, что я пытаюсь сделать – довольно самоочевидно:

  • Инициировать X 'одновременных' процессов (каждый связан с другим php-скриптом)
  • Уметь говорить, когда все они закончены

Я рассмотрел различные подходы, и я, вероятно, буду использовать процессы exec и background. (Что-то в этом роде ).

Вещь, на которую я действительно не могу обойти, – это:

Я не могу понять, какой из наиболее эффективных способов проверить, завершено ли все процессы (возможность следить за общим прогрессом, например, X из Y, также является обязательным) .

Важное значение имеет эффективность во времени и, очевидно, – не вызывая ненужной перегрузки сервера (так что я полагаю, что любая «замороженная» проверка цикла для live pid s, даже если с интервалом, не может быть и речи, верно?)

ЛЮБЫЕ предложения очень приветствуются!


PS: Я изначально поставил все это с асинхронными запросами Ajax, начиная с клиентской стороны, но в настоящее время я рассматриваю переход на не-javascript полностью серверную среду. Тем не менее проблема с параллельной обработкой остается …

Вы должны исследовать функции pcntl_fork и связанные с ними функции. Это позволяет одному мастер-процессу сформировать ряд дочерних процессов и получать уведомление о статусе выхода ребенка.

http://php.net/manual/en/function.pcntl-fork.php