Thread View: pl.comp.lang.ruby
8 messages
8 total messages
Started by Jan Słupicki
Mon, 03 Sep 2007 09:21
Webrick - czy chodzi na wątkach ?
Author: Jan Słupicki
Date: Mon, 03 Sep 2007 09:21
Date: Mon, 03 Sep 2007 09:21
11 lines
1815 bytes
1815 bytes
Czy Webrick uruchamia oddzielne wątki dla obsługi każdego request-u ? Wyczytałem że Mongrel tak właśnie robi. Znalazłem poradę jak dostawać się do obiektu sesji w modelu : http://www.zorched.net/2007/05/29/making-session-data-available-to-models-in-ruby-on-rails/ ale rozwiązanie to jest oparte właśnie na założeniu że każdy request jest obsługiwany przez osobny wątek. -- Jan Słupicki
Re: Webrick - czy chodzi na wątkach ?
Author: Piotr 'piter' Hlawski
Date: Mon, 03 Sep 2007 09:33
Date: Mon, 03 Sep 2007 09:33
13 lines
1535 bytes
1535 bytes
Jan Słupicki wrote: > pl.comp.lang.ruby > Czy Webrick uruchamia oddzielne wątki dla obsługi każdego request-u ? AFAIK nie. Użyj mongrela. Jak go zainstalujesz to stanie się domyślnym serwerem przy developerce. -- .:: Piter // phlawski$gmail,com // gg: 4534287 ::. Chuck Norris zaskarżył NBC o to, że nazwa Prawo i Porządek są zastrzeżonymi nazwami jego lewej i prawej nogi.
Re: Webrick - czy chodzi na wątkach ?
Author: Łukasz Piestrzeniewicz
Date: Mon, 03 Sep 2007 20:53
Date: Mon, 03 Sep 2007 20:53
22 lines
1962 bytes
1962 bytes
On Mon, 03 Sep 2007 09:21:29 +0000, Jan Słupicki wrote: > Czy Webrick uruchamia oddzielne wątki dla obsługi każdego request-u ? > Wyczytałem że Mongrel tak właśnie robi. Znalazłem poradę jak dostawać > się do obiektu sesji w modelu : > http://www.zorched.net/2007/05/29/making-session-data-available-to-models-in-ruby-on-rails/ > ale rozwiązanie to jest oparte właśnie na założeniu że każdy request > jest obsługiwany przez osobny wątek. To rozwiązanie akurat zapewnia spójny dostęp do obiektu sesji *pomimo* wielu równolegle działających wątków. W wypadku serwera jednowątkowego (w szczególności webrick) nie ma potrzeby uciekać się do Thread.current. Inna sprawa, że AFAIK Rails póki co działają prawidłowo tylko w jednym wątku per proces. Nawet mongrel obsługuje na raz tylko jeden request w Rails. Może co prawda jednocześnie serwować kilka plików statycznych w innych wątkach ale w obrębie procesu nadal działa tylko jeden wątek Rails. Podane rozwiązanie jest jednak future-proof i warto z niego skorzystać. Pozdrawiam, Łukasz
Re: Webrick - czy chodzi na wątkach ?
Author: Paweł Kondzior
Date: Fri, 07 Sep 2007 09:39
Date: Fri, 07 Sep 2007 09:39
34 lines
2850 bytes
2850 bytes
Wielowatkowosc mongrela osiaga sie poprzez roznorakie load balancery dla serverow www, brak natywnej wielowatkowosci w zasadzie nie jest w niczym przeszkoda mozna smialo stawiac aplikacje na 3-4 procesach mongrela, spiete balancerem apacha albo lighttpd. Problemy zacyznaja byc w momencie gdy mamy te 3-4 dzialajace procesy mongrela i zazyczylibysmy sobie dzielenie pomiedzy nimi tej samej konfiguracji aplikacji. Kazdy proces jest w zasadzie autonomiczny wiec trzeba o tym pamietac w pewnych okreslonych przypadkach (np stale w klasach przy wlaczonym cachowaniu(domyslne w production cachowanie klas) beda zapamietywane w obrebie procesu mongrela). Dnia 9/3/07 10:53 PM, Łukasz Piestrzeniewicz napisał(a): > On Mon, 03 Sep 2007 09:21:29 +0000, Jan Słupicki wrote: > >> Czy Webrick uruchamia oddzielne wątki dla obsługi każdego request-u ? >> Wyczytałem że Mongrel tak właśnie robi. Znalazłem poradę jak dostawać >> się do obiektu sesji w modelu : >> http://www.zorched.net/2007/05/29/making-session-data-available-to-models-in-ruby-on-rails/ >> ale rozwiązanie to jest oparte właśnie na założeniu że każdy request >> jest obsługiwany przez osobny wątek. > > To rozwiązanie akurat zapewnia spójny dostęp do obiektu sesji *pomimo* > wielu równolegle działających wątków. W wypadku serwera jednowątkowego > (w szczególności webrick) nie ma potrzeby uciekać się do Thread.current. > > Inna sprawa, że AFAIK Rails póki co działają prawidłowo tylko w jednym > wątku per proces. Nawet mongrel obsługuje na raz tylko jeden request w > Rails. Może co prawda jednocześnie serwować kilka plików statycznych w > innych wątkach ale w obrębie procesu nadal działa tylko jeden wątek Rails. > > Podane rozwiązanie jest jednak future-proof i warto z niego skorzystać. > > Pozdrawiam, > Łukasz
Re: Webrick - czy chodzi na wątkach ?
Author: Jaroslaw Zabiello
Date: Fri, 07 Sep 2007 12:23
Date: Fri, 07 Sep 2007 12:23
16 lines
1466 bytes
1466 bytes
On Mon, 03 Sep 2007 10:33:03 +0100, Piotr 'piter' Hlawski <phlawski@cut_this_crap.gmail.com> wrote: > Użyj mongrela. Jak go zainstalujesz to stanie się domyślnym serwerem przy > developerce. Użytkowników FreeBSD może skusić plugin webrick-high-performance. Powinien być szybszy od Mongrela, bo zapuszcza kilka forków (Mongrel działa bardziej jak jeden proces). Taki dopalony Webrick powinien dać duże przyśpieszenie i od biedy zastąpić nawet Apache'a. http://dev.robotcoop.com/Libraries/webrick-high-performance/files/README.html -- Jarosław Zabiełło http://blog.zabiello.com
Re: Webrick - czy chodzi na wątkach ?
Author: Radosław Bułat
Date: Fri, 07 Sep 2007 12:32
Date: Fri, 07 Sep 2007 12:32
15 lines
1783 bytes
1783 bytes
Jaroslaw Zabiello pisze: > Użytkowników FreeBSD może skusić plugin webrick-high-performance. > Powinien być szybszy od Mongrela, bo zapuszcza kilka forków (Mongrel > działa bardziej jak jeden proces). Taki dopalony Webrick powinien dać > duże przyśpieszenie i od biedy zastąpić nawet Apache'a. > > http://dev.robotcoop.com/Libraries/webrick-high-performance/files/README.html > Ostatnio zainstalowałem plugin dev_mode_performance_fixes, http://www.robbyonrails.com/articles/2007/08/28/rails-development-performance-tip-dev_mode_performance_fixes Nie wiem jak pod linuksem ale pod windowsem widać ogromną różnicę. Aczkolwiek nie jest to jeszcze doskonały plugin, czasem zdarza się, że trzeba zrestartować serwer, żeby widoczne były zmiany w kodzie.
Re: Webrick - czy chodzi na wątkach ?
Author: Jan Słupicki
Date: Thu, 13 Sep 2007 07:57
Date: Thu, 13 Sep 2007 07:57
11 lines
1789 bytes
1789 bytes
> To rozwiązanie akurat zapewnia spójny dostęp do obiektu sesji *pomimo* > wielu równolegle działających wątków. W wypadku serwera jednowątkowego > (w szczególności webrick) nie ma potrzeby uciekać się do Thread.current. A jak inaczej uzyskać właściwość "zmiennej globalnej" która byłaby widoczna tak w kontrolerze jak i w modelu (w serwerze jednowątkowym) ? Hmm - może klasa singletonowa ? -- Jan Słupicki
Re: Webrick - czy chodzi na wątkach ?
Author: Jan Słupicki
Date: Thu, 13 Sep 2007 08:04
Date: Thu, 13 Sep 2007 08:04
14 lines
1862 bytes
1862 bytes
> do obiektu sesji w modelu :http://www.zorched.net/2007/05/29/making-session-data-available-to-mo... > ale rozwiązanie to jest oparte właśnie na założeniu że każdy request > jest > obsługiwany przez osobny wątek. Po głębszym zastanowieniu to nie ma problemu. Jak serwer jest jednowątkowy to przecież nie może się zdażyć że jeden request zakłóci działanie innego poprzez nadpisanie zmiennej w Thread.current[] -- Jan Słupicki
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads