Многопроцессорная обработка в php с использованием Zend Framework 3 - PullRequest
0 голосов
/ 05 октября 2018

Возможно ли многопроцессорность / многопоточность в php из запроса http.

Справочная информация

Я работаю над проектом, в котором ожидаются некоторые данные (не от пользователя, поэтому загрузка данныхдля загрузки в API.

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

Мое исследование

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

Pthreads: Это модуль потоков php.Как отмечалось выше, он не настроен для работы с веб-сервером только на cli.

amphp: это модуль, созданный с помощью pthreads, и он поставляется с тем же предупреждением.

Это вызываетвопрос, как лучше решить проблему?Я понимаю проблему, если вы открываете новый поток для каждого соединения, у вас будет 1000 потоков для 1000 соединений, и вы можете легко перегрузить сервер, если это увеличится, но мой случай уникален тем, что я не хочу многопоточности для человеческих соединений.и количество соединений можно легко предвидеть.

1 Ответ

0 голосов
/ 09 октября 2018

Хорошо для тех, у кого есть подобные сомнения, как я, я думаю, это можно исправить с помощью брокера сообщений.Я думал о различных возможностях, таких как демон, crontab, но я думаю, что брокер сообщений - самый чистый способ сделать это.

...