Как предотвратить дублирование заголовков при работе с потоками в PHP? - PullRequest
1 голос
/ 10 ноября 2009

Я написал PHP-скрипт, который должен выполнять разветвление и выполнять некоторую параллельную обработку, а затем главная страница возвращает данные после обработки. В настоящее время я использую функции pcntl для этого. Мне нужно запустить где-то от 2 до 10 потоков, чтобы работать параллельно, и мне нужно подождать, пока я получу результат от всех потоков, прежде чем скрипт выведет в браузер.

К сожалению, я обнаружил, что в выводе есть несколько заголовков «Content-Type»:

Content-Type: text/plain

Content-Type: text/plain

Content-Type: text/plain
[... actual content ...]

Кажется, что один заголовок на порожденный поток. Я пытался закрыть STDOUT через fclose(STDOUT) перед обработкой, и я попытался окружить все путем буферизации вывода безрезультатно. Я еще никого не нашел с этой проблемой, поэтому либо никто не пытается это сделать, либо я делаю что-то, что не вписывается в курс дела.

Я действительно ищу либо способы остановить это, либо предложения альтернативных способов сделать это.

Сервер настроен на использование PHP в качестве CGI в mod_suPHP, если это имеет какое-либо значение.

1 Ответ

0 голосов
/ 13 июня 2011

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

...