2012-11-02 4 views
5

W mojej metodzie sterownika Rails, która jest wykonywana, gdy użytkownik przesyła formularz, jest kod Ruby sleep(60), nakazujący mu poczekanie na minutę. Jeden użytkownik przesyła formularz, a podczas realizacji "śpi", inny użytkownik przesyła formularz. Czy drugi użytkownik będzie musiał czekać na pierwszego użytkownika, czy też uruchomi się uruchomienie kontrolera dla drugiego użytkownika?Spanie w kontrolerze

Odpowiedz

10

Obaj użytkownicy będą czekać tylko przez 60 sekund, nie będą od siebie zależni. Ponieważ żądanie zostanie przetworzone osobno dla siebie. Stąd brak zależności

+2

Z zastrzeżeniem, że jeśli serwer szyn jest jednowątkowy (tzn. Webrick), wówczas drugi użytkownik będzie musiał czekać na zakończenie pierwszego żądania użytkownika, zanim będzie można go uruchomić. –

+0

Tak, słusznie powiedziane, jeśli serwer jest podłączony wątkowo, to nie będzie zajmować obu żądań naraz, dlatego prośba drugiego użytkownika zostanie przyjęta po zakończeniu poprzedniej akceptacji –

+0

zaakceptuj to, jeśli uważasz, że odpowiedź jest prawidłowa co najmniej –