W najprostszej sprężyna (Boot) wnioski obserwuję następujące zachowanie kontrolerów, powiedzmyJednoczesne wejście metoda w sterownikach Wiosna
@CrossOrigin
@RestController
public class MyController {
//...
@RequestMapping(value = {"/lazy-dog"})
@ResponseBody
public Rest lazyDog() {
//...
Thread.sleep(10000);
//
return Message("Dog exiting")
}
@RequestMapping(value = {"/quick-fox"})
@ResponseBody
public Rest quickFox() {
//...
return Message("Fox exiting")
}
}
mianowicie: jednoczesne wejście w lazyDog()
nie jest dozwolony (nazywając go dwukrotnie z dwóch zakładek przeglądarek trwa 20sec
), podczas gdy jednoczesne wykonywanie lazyDog()
i quickFox()
jest dozwolone (tak jak pies czeka, lis może szybko wykonać, powiedzmy w oddzielnej zakładce przeglądarki).
Co należy zrobić w celu umożliwienia jednoczesnego wykonywania dwóch lub więcej połączeń do lazyDog()
?
Uwaga: Obecnie jestem uruchomienie aplikacji poprzez:
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Tak, to było to; Dziękuję Ci. (Równoczesne wywołania z Firefoxa i Chrome na 'lazyDog()' wykonywane jednocześnie.) –
W Chrome wystąpił ten sam problem. Czy możesz połączyć/podać więcej informacji o tym zachowaniu? @Madhusudana Reddy Sunnapu – Sundeep
@ Sundeep Może odwołać się do sekcji "Trwałe transakcje HTTP" [link] (http://blog.catchpoint.com/2010/09/17/anatomyhttp/), która mówi, że wiele żądań może być obsługiwane na tym samym połączeniu. –