Долгосрочные транзакции в Slick

0

Я работаю над веб-сервисом akka-http/slick, и мне нужно сделать следующее в транзакции:

  1. Вставка строки в таблицу
  2. Вызов некоторых внешних веб-сервисов
  3. Зафиксировать транзакцию

Веб-сервис, который мне нужно позвонить, иногда очень медленный, чтобы ответить (скажем ~ 2 секунды).

Я обеспокоен тем, что это может привести к тому, что соединение SQL будет открыто слишком долго, и это исчерпает пул соединений Slick и повлияет на другие независимые запросы. Возможно ли это? Или Слик делает что-то, чтобы убедиться, что это "незанятое" соединение в середине транзакции не голодает пулом?

Если это то, о чем я должен беспокоиться - есть ли что-нибудь, что я могу сделать, чтобы исправить это?

Если это имеет значение, я использую MySQL с TokuDB.

Теги:
database
slick

1 ответ

0

Сглаженная документация, похоже, говорит, что это будет проблемой.

Использование транзакции всегда подразумевает закрепленный сеанс.

А также

Вы можете использовать withPinnedSession для принудительного использования одного сеанса, сохраняя открытый сеанс даже в ожидании вычислений без базы данных.

От: http://slick.lightbend.com/doc/3.2.0/dbio.html#transactions-and-pinned-sessions

Ещё вопросы

Сообщество Overcoder
Наверх
Меню