База данных Play Framework Связанные конечные точки зависают через некоторое время
У меня есть ситуация, которая почти идентична описанной здесь: Воспроизведение ресурсов фреймворка через несколько дней
Мое приложение простое, Play 2.6 + PostgreSQL + Slick 3. Кроме того, операции по извлечению БД являются простыми и простыми. Сценарий использования заключается в том, что данные поступают через одну конечную точку, сохраняются в БД (есть некоторые действующие лица, которые асинхронно хранят некоторые данные, которые могут потерпеть неудачу при использовании стратегии по умолчанию) и обслуживаются через остальные конечные точки.
Все идет нормально.
Через несколько дней все конечные точки, имеющие отношение к базе данных, перестают отвечать. Приложение является сервером на t3-medium на одном экземпляре, подключенном к экземпляру RDS. Количество подключений к RDS всегда одинаково и стабильно, в основном на холостом ходу.
Я также заметил, что база данных фактически вызывается, и запрос выполняется, но запрос никогда не заканчивается и не получает никаких данных.
Простейшая конечная точка (POST) предназначена для публикации отзывов - в основном один вкладыш:
feedbackService.storeFeedback(feedback.deviceId, feedback.message).map(_ => Success)
Эта вещь Успеха обертка вокруг Ok("что-то"), так что никакой магии там нет. Служба обратной связи хранит одну запись в БД предпочтительным образом, и в этом нет ничего сумасшедшего.
Когда вызывается сообщение обратной связи, я замечаю в клиенте psql, что запрос INSERT выполнен, и данные действительно попадают в базу данных, но HTTP-запрос никогда не заканчивается и данные об успехе не возвращаются. Параллельно, вызов не связанных с БД конечных точек, которые возвращают некоторые значения, такие как конечная точка состояния, проходит без проблем.
Производственные журналы ничего не показывают, и перезапуск помогает на день или два. Я полагаю, что происходит некое истощение ресурсов, но которое и где в настоящее время находится за пределами моего понимания.