Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Последовательность http запросов
- To: nginx-ru@xxxxxxxxx
- Subject: Последовательность http запросов
- From: pywork <pywork@xxxxxxxxx>
- Date: Mon, 11 Dec 2006 18:49:51 +0300
- Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:user-agent:mime-version:to:subject:content-type:content-transfer-encoding; b=S6x5rFN8w6z+WOfQfhNXjzc8vTltD43/9DjBWtOwIHiZuI4J6fWexCf53P7fSlWErePdEKKZFU1qRkgueRp6QMQ0PKZc+q3F9mlSP3F6JXmEKgbIMDunMqMlupRcHR0NMVgZER3mPvyUl4hf3dbs436b7tGe492333/2fetewDI=
Здравствуйте!
Возникла проблема в http модуле.
Данный модуль принимает http запрос и в обработке этого запроса должен
получить некоторые данные от backend'а. После получения этих данных,
должен вставить полученные данные в http ответ.
Для этого в обработке запроса мы создает сокет, отправляем в него
некоторые данные, устанавливаем event на read и выходим из обработчика
возвращая NGX_DONE.
В конце обработчика на событие read мы выполняем функцию
ngx_http_finalize_request(r, NGX_OK).
Внимание вопрос!
Нам приходят 2 http запроса, которые мы должны обработать с обращением к
backend'у на каждый запрос.
Но еще не успев отработать 1й запрос, нам приходит 2й. Нам хотелось
чтобы можно было приостановить обработку последующего запроса, прежде
чем мы не обработали текущий запрос.
Проблема решается, если в обработчике http запроса после запроса к
backend'у поставить sleep(1) :)
Как решить эту проблему красиво?
|