Perl: Nginx

Dmitry E. Oboukhov unera на uvw.ru
Ср Дек 28 14:22:52 UTC 2011


> Смотрю примеры использования сабж.

> Интересуют вопросы, вот например:

> ngx_timer 5, 5, sub {
> ngx_log_notice 0, "5 seconds gone";
> };

> А как сделать например чтобы таймер повторился 5 раз?

> То есть в AnyEvent например мы делаем нечто вроде

> my $timer;
> my $counter = 0;

> $timer = AE::timer 5, 5, sub {
> log_notice "5 seconds gone";
> return if ++$counter < 5;
> undef $timer;               # тут мы останавливаем timer
> };

> А в nginx такая возможность есть?

> Так же интересуют вопросы остановки работы с сокетами.


Я к чему. Имеются туева хуча наработок на Perl для работы
event-машинами. В частности AnyEvent. На базе него есть разные вещи
вроде событийной обработки, парсинга итп. Но там работа основана на
том что когда ты вешаешь свой саб на обработку некоего повторяющегося
события (например что данные появились в сокете), то ты всегда этот
ватчер можешь убрать/заменить другим. И на этом можно крутить очень
сложную логику в довольно простом режиме. То есть например первый
ватчер читает заголовок какого-нибудь протокола, затем удаляется и
заменяется другим, который что-то дочитывает итп. и эта вся фигатень в
перле развивается: всякие коннекторы к БД асинхронные делают (например
к постгрису есть коннектор), итп итд.

Вот и хочется для AnyEvent написать имплементатор Nginx и все это
хозяйтство автоматом станет работать на nginx.
-- 

. ''`.                               Dmitry E. Oboukhov
: :’  :   email: unera на debian.org jabber://UNera@uvw.ru
`. `~’              GPGKey: 1024D / F8E26537 2006-11-21
  `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537
----------- следущая часть -----------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20111228/c3ba7f84/attachment-0001.bin>


Подробная информация о списке рассылки nginx-ru