Najlepsza odpowiedź jest w sekcji komentarzy (więc nie mogę dać im punktów za odpowiedź :().jest playframework naprawdę asynchroniczny?
Zastanawiam się, czy Playframework był asynchroniczny w ten sposób (który byłby naprawdę asynchroniczny, lub w pełni asynchroniczny) Tak, gra jest asynchroniczna z przodu, umożliwiając 1000 klientów na 100 wątkach, ale na zapleczu, nie ma sposobu, aby to osiągnąć, lub jestem w błędzie (co mam nadzieję być) .....
public static void someRequest(String id) {
//This method adds listener to a nio socket listener so it returns
//IMMEDIATELY and page can't be rendered at this point
fetchRemoteDataFromOtherSystem(id, new MyListener());
// DO NOT RENDER PAGE YET but return so thread can be used for other requests
}
public class MyListener extends SomeListener {
public void fireResponse(Response response) {
renderPage(response);
}
}
UWAGA: może to być ekstremalnie asynchroniczne zachowanie, a także pamiętać, że jeśli masz system zaplecza, który zajmuje kilka sekund, aby odpowiedzieć na każde żądanie, potrzebujesz teraz około 100 mniej komputerów, aby obsługiwać tę samą liczbę użytkowników. normalne konteksty, w których system zaplecza jest bardzo szybki, oczywiście nie byłoby różnicy w wydajności.
Dzięki, Dean
Czy znasz ten http://www.playframework.org/documentation/1.2.4/asynchronous? Zwłaszcza rzeczy o Obietnicach. To może być również interesujące: http://caffeinelab.net/2010/06/29/asynchronous-http-client-in-play-framework/ – nylund
OK, to było niesamowite, opublikuj jako odpowiedź .... drugie łącze jest niezwykle jasne !!!! wspaniała odpowiedź !!!! (jak to się stało, że nie mogę oznaczać komentarzy jako poprawnej odpowiedzi :(). –
hmmm, ten przykład pokazuje Future, która nie ma możliwości dodania słuchacza, więc gra musi być sondą na przyszłość i pytając, czy dzieje się, jest w kółko ???? Ten rodzaj cuchów ... dlaczego po prostu nie użyć wątku odpowiedzi, aby powiadomić o grze, która następnie wywołałaby po raz drugi metodę kontrolera? –