Форум сайта python.su
2
Слишком много запросов к бд? Значит проблема в коде? Разные страницы сайта выдают такое переодически. Куда копать?
Для работы с бд юзаю джанговский orm
Офлайн
52
Поменяйте max_connections или что-то в этом роде в конфиге mysql.
Офлайн
2
К сожалению, сайт на хостинге, доступа к конфигам БД нет =(
Потрясу хостеров.
Офлайн
0
обычно эта ошибка возникает когда забываем закрывать соединения и открываем новые.
Если выполнить SQL запрос:
SHOW variables LIKE "max_connections";
SET global max_connections = 150;
Отредактировано FlaPy (Июль 19, 2012 03:15:37)
Офлайн
2
Хостеры написали, что ближе к ночи (как раз, когда я работаю над сайтом), они перезапускают сервер. Иногда выдает 504 ошибку, но чаще - too many connections. Если проблема в том, что не закрываю соединения, то как их закрывать используя orm джанговский?
Офлайн
52
ORM стоит выше уровня закрывания соединений. Покажите проблемное место в коде, когда возникают ошибки. Если непонятно, где это происходит, самое время подружиться с логгированием.
Офлайн
2
На разных страницах. Есть где два или три запроса, а есть где и один. Покурю логгирование на днях)
Офлайн
52
Интересно. А что за запросы такие покажите?
Офлайн
2
Вот например, при работе с этой вьюхой бывает:
@is_teacher def list_pages(request): if request.method == 'POST': post_pages = request.POST.getlist('pages[]') if request.POST['action'] == u'delete': for page_id in post_pages: p = Page.objects.get(id=int(page_id)) p.delete() user = User.objects.get(id=request.session['user']) menu = Menu.objects.get(owner = user) if len(menu.items) < 1: pages = Page.objects.filter(user=user) else: pages = 0 return render_to_response('list_pages.html', locals(), context_instance=RequestContext(request))
Отредактировано barabansheg (Июль 19, 2012 15:29:52)
Офлайн
173
А post_pages - большой список?
Может тогда:
Page.objects.fiter(id__in=map(int, post_pages)).delete()
user = request.user
len(menu.items)
Отредактировано reclosedev (Июль 19, 2012 17:42:06)
Офлайн