2012-04-26 1 views
0

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

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

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

Если я не хочу что-либо менять на стороне клиента, есть ли какое-либо обходное решение, которое может достичь этого эффекта?

+0

Вы пробовали ajax? – Satya

+1

Вы уже заглянули в [flush] (http://php.net/manual/en/function.flush.php)? – mbosecke

+0

@Satya ajax предназначен для запроса на сервер, но я работаю на сервере, чтобы сделать асинхронный ответ. –

ответ

0

Как насчет какой-то псевдо-многопоточности? http://phplens.com/phpeverywhere/?q=node/view/254

+0

Спасибо за ваше сообщение, но я уже выполнил поиск по Google и посмотрел на эту ссылку ... Проблема в том, что данные не будут отправляться клиенту до тех пор, пока весь скрипт не завершится, а разветвление другого потока не решит проблему, так как это все еще содержащиеся в том же процессе, что и раньше ... –

Смежные вопросы