Обработка HTTP-сервера PHP для немедленной отправки HTTP-ответа, продолжая внутреннюю обработку в отдельном процессеPhp

Кемеровские программисты php общаются здесь
Anonymous
Обработка HTTP-сервера PHP для немедленной отправки HTTP-ответа, продолжая внутреннюю обработку в отдельном процессе

Сообщение Anonymous »

Я реализую некоторое PHP-приложение на сервере A, которое получает запрос от клиента (браузера), что приведет к отправке HTTP-запроса на другой сервер B. Затем на запрос клиента поступает ответ (отправляется ответ HTTP).
Некоторое время спустя сервер A получает HTTP-запрос обратного вызова от сервера B. Сервер B ожидает (немедленного) HTTP-ответа с кодом состояния 200. Затем эта часть заканчивается, пока сервер A должен завершить обработку данных полученные от сервера B.
Помещение данных в какую-то очередь и периодический запуск задания cron для просмотра очереди и работы с данными здесь не подходит, главным образом потому, что данные а) должны обрабатываться немедленно, и б) события происходят редко (задание cron в большинстве случаев будет выполняться впустую).
Итак, я подумал об использовании fork() для создания дочернего процесса. Родительский процесс затем ответит серверу Б, в то время как дочерний процесс будет работать с данными.
Итак, вот код без деталей обработки: Похоже ли это на подходящее решение?
Мне неясно состояние сетевого подключения в дочернем процессе. Согласно ручному поведению (обычному fork()), дочерний элемент наследует все дескрипторы открытых файлов, включая сетевые подключения (если я не ошибаюсь).
Возможно, "pcntl_unshare()" должен использоваться для отключения сетевых подключений от родителя? К сожалению, такие параметры, как «CLONE_NEWNET», похоже, не описаны в руководстве.
Любые мысли и советы приветствуются

Подробнее здесь: https://stackoverflow.com/questions/798 ... ntinue-bac

Вернуться в «Php»