Spring Boot to build a RESTful web service kullanıyorum. IDE'm Eclipse Oksijen.Spring-Boot: Aynı anda birden çok istekte bulunun
Chromearacılığıyla her 2 saniyede içinde birden HTTP alma istekleri göndermek, ancak tek tarafından biri tetiklenir. Her istek, önceki isteğin tamamlanmasını bekler.
Thu Sep 14 11:31:15 EDT 2017: ThreadId 25
Thu Sep 14 11:31:20 EDT 2017: ThreadId 26
Thu Sep 14 11:31:25 EDT 2017: ThreadId 28
Thu Sep 14 11:31:30 EDT 2017: ThreadId 30
konsol çıkış kontrolör her 5 saniyede denir gösterir:
@RestController
@RequestMapping("/dummy")
public class DummyController {
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity<Map<String, String>> dummytsp(@RequestParam(value="msg", defaultValue="Hello") String msg) {
System.out.println("" + new Date() + ": ThreadId " + Thread.currentThread().getId());
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Map<String, String> response = new HashMap<>();
response.put("message", msg);
return new ResponseEntity<>(response, HttpStatus.OK);
}
}
Benim konsol dışarı koymak geçerli:
İşte benim denetleyicisi kodudur. Ama her 2 saniyede bir istemi gönderiyorum.
Birden çok gelen isteği aynı anda nasıl ele alabilirim?
Ben farklı tarayıcılarda istekleri gönderirseniz, mükemmel çalışır:
GÜNCELLEME (Ben konsol çıktı üretmesi her 2 saniyede görmelisiniz). Oturumu paylaşan aynı tarayıcı/uygulamada test edersem, sorun ortaya çıkar.
numaralı oturumda aynı anda birden çok istek kabul edilebilir mi?
Teşekkürler!
Bunu yeniden oluşturamıyorum. Varsayılan olarak, Spring Boot web uygulamaları çok iş parçacıklıdır ve aynı anda birden çok isteği ele alır. Gömülü Tomcat kullanıyor musunuz? Varsayılan iş parçacığı ayarlarından herhangi birini değiştirdiniz mi (ör. 'Server.tomcat.max-threads')? –
@KyleAnderson, istekleri farklı tarayıcılardan gönderdiğimde kod çalışır. Aynı tarayıcıda istekleri (açık sekmeleri) gönderdiğimde sorun ortaya çıkıyor. Gönderiyi güncelledim. ty! –
Bu _might_ tarayıcıya özgü bir tuhaflık olabilir. Windows 10'da, Chrome ve Firefox, aynı URL'ye birden çok istekte sıraya girerken, IE, Edge ve curl ise görünmez. –