Welcome! Log In Create A New Profile

Advanced

Re: модуль nginx для работы с блокирующей операцией

Maxim Dounin
May 09, 2014 02:16AM
Hello!

On Thu, May 01, 2014 at 07:45:02AM -0400, saaleb wrote:

> Maxim Dounin Wrote:
> -------------------------------------------------------
> > Hello!
> >
> > On Tue, Apr 29, 2014 at 04:51:18PM -0400, saaleb wrote:
> >
> > > И снова здравствуйте.
> > >
> > > Изучал upstream модули как идущие в комплекте, так и сторонние, но
> > есть
> > > некоторые неясные моменты.
> > >
> > > 1. create_request - тут создаем запрос, передаем его upstream.
> > Немного
> > > непонятно, как именно идет взаимодействие с upstream. Мне, например,
> > > требуется сформировать структуру из запроса и вызвать определенную
> > функцию
> > > из сторонней библиотеки. Назовем ее send(). Могу ли я вызвать эту
> > функцию из
> > > create_request или нужно использовать более низкий уровень для
> > совмещения
> > > моего send() и механизма работы с upstream?
> >
> > Взаимодействием собственно с бекендами занимается сам модуль upstream.
> >
> > Задача реализации протокола - сформировать запрос, который будет
> > отправлен.
> >
> > Если вам требуется для отправки запроса использовать стороннюю
> > библиотеку - модуль upstream вам не подойдёт.
>
> Хорошо. Какой тогда существует путь в nginx для взаимодействия со сторонней
> библиотекой, учитывая, что время ответа не отпределено, т.е. надо как-то
> обрабатывать таймауты.

Точно так же, как это делает, например, тот же модуль upstream -
взводить таймер, и возвращать ошибку при его срабатывании.

Основной вопрос - это умеет ли библиотека работать с
неблокирующимися сокетами, и умеет ли эти самые сокеты отдавать
наружу, чтобы их можно было встроить в event loop nginx'а. Если
не умеет - то надо учить.

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

--
Maxim Dounin
http://nginx.org/

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

модуль nginx для работы с блокирующей операцией

saaleb April 21, 2014 09:46AM

Re: модуль nginx для работы с блокирующей операцией

Maxim Dounin April 21, 2014 10:20AM

Re: модуль nginx для работы с блокирующей операцией

saaleb April 29, 2014 04:51PM

Re: модуль nginx для работы с блокирующей операцией

Maxim Dounin April 30, 2014 10:42AM

Re: модуль nginx для работы с блокирующей операцией

saaleb May 01, 2014 07:45AM

Re: модуль nginx для работы с блокирующей операцией

Maxim Dounin May 09, 2014 02:16AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 323
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready