Yesod/ Постоянный не закрытие соединений с БД

У меня есть веб-приложение, которое использует Yesod и Persistent. Я использую стандартные леса Foundation.hs а также Application.hs, Я написал функцию, которая обрабатывает локальный файл JSON, а затем вставляет строку в несколько таблиц для каждого элемента в файле JSON. Так что он будет выполнять более 1000 вставок.

Запустив функцию в GHCI, она успешно сохраняет несколько строк, а затем выдает ошибки:

libpq: failed (FATAL: sorry, too many clients already)

Используя запрос postgres:

select * from pg_stat_activity where datname = 'mydb-name'

Я вижу, что существует 100 свободных соединений, которые были созданы моим приложением и не закрыты. Затем мне нужно уничтожить эти соединения, чтобы иметь возможность что-либо делать.

Не должен настойчиво закрывать эти соединения как INSERT запросы завершены? Что мне нужно сделать по-другому?

0 ответов

Другие вопросы по тегам