Ищу пример Akka, Database

 
0
 
Java
ava
Burka | 27.12.2016, 15:46
Привет, я разбираюсь с актерами akka в java, возник вопрос как организовать работу с БД. Актер не должен блокировать поток и я не понимаю как это организовать, есть ли примеры кода или просто объяснение какое то не сложное? 
Kommentare (3)
ava
LSD | 29.12.2016, 12:20 #
Цитата (Burka @  27.12.2016,  16:46 findReferencedText)
Привет, я разбираюсь с актерами akka в java, возник вопрос как организовать работу с БД. Актер не должен блокировать поток и я не понимаю как это организовать, есть ли примеры кода или просто объяснение какое то не сложное?

По хорошему, под работу с базой надо выделить отдельный пул тредов. Запросы в базу должны быть по возможности максимально быстрыми и должны стоять небольшие таймауты на получение конешена, на сам запрос и т.д.
Да парадигма акторов предполагает, что актор работает быстро и поток надолго не занимает, но это не догма. Если есть необходимость актор может занять поток надолго. Просто надо понимать последствия.

Возможно вообще стоит работать с базой, в традиционном ключе: есть очередь куда акторы складывают данные для записи в базу. А отдельный пул потоков разгребает потихоньку эту очередь и пишет их в базу.
ava
Burka | 29.12.2016, 21:59 #
Можно выделить отдельный тред для актеров которые работают с базой. Вопрос нужно ли конектиться каждый раз при запросе или можно как то передать общее состояние от одного к другому? 
ava
LSD | 30.12.2016, 11:14 #
Цитата (Burka @  29.12.2016,  22:59 findReferencedText)
Вопрос нужно ли конектиться каждый раз при запросе или можно как то передать общее состояние от одного к другому?  

Разумеется - нет, так вообще никто не делает ни с акторами, ни в традиционных серверах. Для работы с базой используется пул соединений. 
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
ava  LSD   Burka
advanced
Absenden