2016-11-19 5 views
1

Я использую SparkJava для создания сайта. В настоящее время у него есть система управления учетными записями. У меня есть контроллер, LoginController, который делает запрос к базе данных асинхронно и возвращает ListenableFuture<Account>.Есть ли способ получить главный исполнитель потока для сервера sparkjava/embedded jetty?

Счет менеджер вызовов производится внутри Route в моем LoginController, однако я хочу только перенаправить пользователя на сайт (синхронно), как только Account была захвачена (асинхронной).

Я знаю, что могу сделать returnedFuture.addListener(runnableThatRedirectsUser, <executor>), но как я могу получить <executor> для главной/синхронизирующей темы в sparkjava/jetty?

Любая помощь/совет приветствуются! Благодаря!

ответ

0

Это моя вина. Понял, что каждый запрос в sparkjava - это новый поток (или, по крайней мере, есть ThreadPool) ... поэтому мне не нужно беспокоиться о возврате в основной поток или наличии асинхронного потока для задач базы данных!

+0

Для Jetty каждая отправка запроса обрабатывается потоком, но запрос не должен удерживаться на этой ветке в течение всего срока службы обмена запросами. Jetty может/и имеет запросы, у которых нет активных потоков. Как и 1 запрос/ответный обмен, может обрабатываться несколькими различными потоками в течение всего срока его службы. –

-1

Просто сделайте его статическим! Это делает все проще