Можно? Приделайте, выложите модулем/патчем, ребятам будет приятно. Особенно, если они, напустив на него ab, получат нормальные результаты.<br><br><div class="gmail_quote">10 января 2009 г. 21:38 пользователь Peter A Leonov <span dir="ltr">&lt;<a href="mailto:gojpeg@gmail.com">gojpeg@gmail.com</a>&gt;</span> написал:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Согласен с вами, к нжинксу можно приделать цги. И можно замудрить так, что все будет вполне себе рилтайм. Только, боюсь, это не очень интересная задача, раз ребята так противятся самой мысли о ней.<br>

<br>
С уважением,<br>
Петр Леонов.<br>
+7 (905) 758-12-73<div><div></div><div class="Wj3C7c"><br>
<br>
On 10.01.2009, at 7:26, &quot;Sergey Shepelev&quot; &lt;<a href="mailto:temotor@gmail.com" target="_blank">temotor@gmail.com</a>&gt; wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
OMFG уважаемые господа, речь шла о таймаутах событийной машины.<br>
Конект за 10 секунд - что-то произойдет раньше - либо конект, либо 10 секунд.<br>
В nginx есть proxy_connect_timeout. Речь об этом была, йолки.<br>
<br>
2009/1/8 Sergey Bondari &lt;<a href="mailto:bondari@1stomni.com" target="_blank">bondari@1stomni.com</a>&gt;:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello Sergey,<br>
<br>
Мне тоже кажется что вы не понимаете концепции асинхронных событийных<br>
приложений. Таймаут там не нужен по такой простой причине что пока&nbsp;не пришло<br>
событие, делать-то нечего. А чтобы никого не &quot;теребить&quot; и существуют<br>
механизмы которые отслеживают события на N ресурсах одновременно.<br>
<br>
Когда вы попробуете написать событийную машину в которую вы<br>
попытаетесь вставить таймаауты и синхронные вызовы вы поймете что это<br>
не тривиально. Событийная машина не имеет права застывать на каких-то<br>
синхронных вызовах с таймаутом, иначе она теряет свой смысл. Все<br>
должно выполняться асинхронно. Асинхронно помещаете в пул запрос,<br>
когда принимающая сторона готова к приему, посылаете запрос, когда<br>
ответ готов, получаете событие и принимаете ответ. Обрабатываете<br>
ответ, скажем, вашим колбэком, т.е. функцией которая висит в пуле<br>
вместе с запросом, который вы отправляли.<br>
<br>
<br>
SS&gt; У меня есть некий асинхронный движок. Допустим я по какому-то внешнему<br>
SS&gt; событию (например запуск) хочу подконектиться к другому серверу и<br>
SS&gt; послать ему строчку.<br>
SS&gt; Для этого я говорю своему асинхронному движку: конектись(адрес, порт,<br>
SS&gt; за 10 секунд).<br>
SS&gt; В это время движок делает соответствующий системный вызов... и&nbsp;таки<br>
SS&gt; да, никаких таймаутов. Но он либо<br>
SS&gt; &nbsp; а) устанавливает еще один колбек от системы - на время 10 секунд и<br>
SS&gt; ждет какое событие наступит раньше (реализация таймаута)<br>
SS&gt; &nbsp; б) либо периодически очень-очень часто теребит ОС, мол, а не<br>
SS&gt; наступило ли там событие. И в процессе этого теребления инкрементит<br>
SS&gt; прошедшее время. И опять-таки получается реализация таймаута.<br>
<br>
SS&gt; Конечно может быть есть еще куча гораздо более лучших способов. Я<br>
SS&gt; просто хотел сказать, что если в сисколе select/epoll/etc нет понятия<br>
SS&gt; таймаута - это не значит, что асихнронные приложения их не ждут.<br>
SS&gt; Асинхронщина без реализации таймаутов (в любом виде, мне правда пофигу<br>
SS&gt; на каком уровне и как именно) - бесполезна.<br>
<br>
SS&gt; 2008/12/31 &nbsp;&lt;<a href="mailto:postmaster@softsearch.ru" target="_blank">postmaster@softsearch.ru</a>&gt;:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

Здравствуйте, Sergey.<br>
<br>
Вы не совсем правильно представляете работу асинхронных приложений.<br>
Они не ждут таймаут, они получают сообщения от ОС и по ним что-то делают.<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Почитал тред про CGI в nginx, утром обсуждали смежную задачку с колегом.<br>
Только у меня идея была написать всю асинхронщину на питоне, а в<br>
реальной жизни мы используем nginx + fastcgi на питоне.<br>
</blockquote>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
И в общем идея примерно такая.<br>
Есть некий слой &quot;А&quot; асинхронной обработки запросов снаружи (повторюсь,<br>
сейчас его роль офигительно выполняет nginx).<br>
&quot;А&quot; знает, что в его распоряжении имеется, скажем 100 бекендов - 100<br>
процессов. Думаю, оптимальное количество можно определить для<br>
конкретной материнки и проца. (RFC)<br>
Приходит внешний запрос от клиента. &quot;А&quot; здесь быстро принимает запрос<br>
и ищет свободный воркер<br>
если есть свободный воркер, (RFC)<br>
 &nbsp;помечает его как занятый<br>
 &nbsp;асинхронно шлёт запрос ему,<br>
(и продолжает работать дальше)<br>
если нет свободного воркера<br>
 &nbsp; ждем таймаут, если в течение таймаута свободного воркера не<br>
появилось - возвращаем клиенту &quot;таймаут&quot; (RFC, кажется, nginx именно<br>
так и умеет)<br>
когда воркер вернул результат<br>
 &nbsp; отдаём клиенту,<br>
 &nbsp; помечаем воркер как свободный.<br>
</blockquote>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
К этому счастью нужно прикрутить админку бекендов с графиками и<br>
полуавтоматическим контроллером пула воркеров, то есть чтоб некий<br>
третий процесс контроллировал сколько нужно прибить лишних воркеров,<br>
сколько нужно открыть новых (RFC).<br>
</blockquote>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Получится наверно что-то вроде веб-части Google AppEngine.<br>
</blockquote>
<br>
<br>
<br>
<br>
--<br>
С уважением,<br>
postmaster &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;mailto:<a href="mailto:postmaster@softsearch.ru" target="_blank">postmaster@softsearch.ru</a><br>
<br>
<br>
<br>
</blockquote></blockquote>
<br>
<br>
<br>
<br>
--<br>
Best regards,<br>
Sergey<br>
<br>
<br>
<br>
</blockquote></blockquote>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>С уважением, Борис Долгов.<br>icq 77556665<br>e-mail <a href="mailto:boris@dolgov.name">boris@dolgov.name</a><br>