Size: a a a

Django [ru] #STAY HOME

2021 March 20

AD

Alex Dem in Django [ru] #STAY HOME
Vlad Naumov
Всем привет, может кто подскажет: есть докер контейнеры на впс (Джанго, селери, редис, volume на mysql). Периодически через селери выполняется долгая таска(около 5 минут). После каждого такого таска  спавнятся какие-то спящие процессы mysql которые жрут оперативку и не пропадают. Как бороться?)
ищи локи
источник

AD

Alex Dem in Django [ru] #STAY HOME
Vlad Naumov
Хороший вопрос...я первый раз в жизни все это дело настраивал на сервере, поэтому куча вопросов и нет ответов. я и в чат по mysql отписал...
источник

AD

Alex Dem in Django [ru] #STAY HOME
транзакции закрываешь? raw SQL или ORM?
источник

AD

Alex Dem in Django [ru] #STAY HOME
вангую подвисшие транзакции, короч
источник

VN

Vlad Naumov in Django [ru] #STAY HOME
Alex Dem
транзакции закрываешь? raw SQL или ORM?
часть того, часть этого...
источник

AD

Alex Dem in Django [ru] #STAY HOME
Vlad Naumov
часть того, часть этого...
коммиты делаешь на raw sql?
источник

AD

Alex Dem in Django [ru] #STAY HOME
если не хочешь лезть в БД, и не уверен, что делаешь коммиты, попробуй накидать коммитов там где логика скрипта позволяет
источник

VN

Vlad Naumov in Django [ru] #STAY HOME
вот так делаю: with connection.cursor() as cursor:
источник

VN

Vlad Naumov in Django [ru] #STAY HOME
без коммитов
источник

AD

Alex Dem in Django [ru] #STAY HOME
Vlad Naumov
вот так делаю: with connection.cursor() as cursor:
я raw только на psycopg писал (т.е. постгрес питон клиент)
глянь как на твоем питоновском mysql клиенте коммиты делаются
источник

AD

Alex Dem in Django [ru] #STAY HOME
Vlad Naumov
без коммитов
велик шанс, что я прав :)
в psycopg по дефолту все идет одной транзакцией, пока сам коммит не сделаешь или в настройках не пропишешь автокомит
источник

AD

Alex Dem in Django [ru] #STAY HOME
вероятно, в mysql обертке тоже самое поведение реализовано
источник

VN

Vlad Naumov in Django [ru] #STAY HOME
Alex Dem
я raw только на psycopg писал (т.е. постгрес питон клиент)
глянь как на твоем питоновском mysql клиенте коммиты делаются
а там еще и по-разному? ужас
источник

AD

Alex Dem in Django [ru] #STAY HOME
Vlad Naumov
а там еще и по-разному? ужас
какой библиотекой пользуешься для raw SQL?
источник

VN

Vlad Naumov in Django [ru] #STAY HOME
ладно, спасибо. буду копать в эту сторону \
источник

VN

Vlad Naumov in Django [ru] #STAY HOME
Alex Dem
какой библиотекой пользуешься для raw SQL?
никакой. Джанговский функционал. драйвер: django.db.backends.mysql
источник

AD

Alex Dem in Django [ru] #STAY HOME
connection.autocommit = True
источник

AD

Alex Dem in Django [ru] #STAY HOME
или вроде бы альтернативно можно вручную накатывать

connection.commit()
источник

AD

Alex Dem in Django [ru] #STAY HOME
точнее говоря, в целом то точно можно, но может быть вопрос неправильного синтаксиса предоставленного мной "кода" :)
источник

AD

Alex Dem in Django [ru] #STAY HOME
Внутри джанго все равно оборачивает стандартный питон клиент
источник