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
5
A
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
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ć. –
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 –
zaakceptuj to, jeśli uważasz, że odpowiedź jest prawidłowa co najmniej –