[Moscow.pm] XS как переименовать модуль?
Mons Anderson
inthrax на gmail.com
Пт Фев 4 04:20:56 PST 2011
On Friday 04 February 2011 09:51:21 Ivan Petrov wrote:
> ща пришли к такому варианту перезапуска:
> * пишем свой tcp_server (поскольку Марк в AE отказался подобавлять
> каллбеки): нужно чтобы он мог пуститься с готовым сокетом, а так же
> "спрашивал разрешения" на accept.
> * в определенный момент машина перестает
> делать accept'ы (клиенты копятся в очереди)
> * как только все соединения
> обработаны делаем fcntl на сокет чтобы он мог пережить exec * делаем exec
> на самого себя и запускаем tcp_server с открытым сокетом.
>
> по идее клиенты должны "заметить" разве что некоторый простой на периоде
> установления соединения.
Посмотрите на реализацию AnyEvent::HTTP::Server
(https://github.com/Mons/AnyEvent-HTTP-Server)
там у меня как-раз и реализован запуск с готовым сокетом
а вот тут:
https://github.com/Mons/Daemond/blob/master/lib/test-shared.pl
реализован пример AE tcp сервера с префорком
т.е. запускаем нужное кол-во процессов (по кол-ву ядер)
при достижении определенного размера по vsize (see Proc::Vsize ;)) перестаем в
чайлде делать accept, завершаем обработку текущих соединений и выходим.
мастер процесс перезапускает чайлда.
И еще было-бы интересно все-таки взглнуть на вашу реализацию.
--
Vladimir Perepelitsa aka Mons Anderson
<inthrax на gmail.com> / #99779956
Подробная информация о списке рассылки Moscow-pm