мы подключаемся к нашему серверу Postgresql (RDS) из нашего бэкэнда django, а также из lambda, иногда бэкенд запросов django истекает, и я запускаю следующий запрос, чтобы увидеть блокировки:
SELECT
pg_stat_activity.client_addr,
pg_stat_activity.query
FROM pg_class
JOIN
pg_locks ON pg_locks.relation = pg_class.oid
JOIN
pg_stat_activity ON pg_locks.pid =
pg_stat_activity.pid
WHERE
pg_locks.granted='t' AND
pg_class.relname='accounts_user'
Это даетМне 30 строк простых запросов на выборку, выполняемых из лямбды, например:
SELECT first_name, picture, username FROM accounts_user WHERE id = $1
Почему этот запрос удерживает блокировку?Должен ли я волноваться?
Я использую библиотеку pg8000 для подключения из Lambda
with pgsql.cursor() as cursor:
cursor.execute(
"""
SELECT first_name, picture, username
FROM accounts_user
WHERE id = %s
""",
(author_user_id,),
)
row = cursor.fetchone()
# use the row ..
Я открыл проблему на Github, возможно, это из-за того, что я неправильно использую библиотеку.https://github.com/tlocke/pg8000/issues/16