• XSS.stack #1 – первый литературный журнал от юзеров форума

Django - Нужна помощь

FixMajuk

ripper
КИДАЛА
Регистрация
16.12.2021
Сообщения
61
Реакции
2
Пожалуйста, обратите внимание, что пользователь заблокирован
Доброго времени суток. Нужна небольшая помощь по проекту, задачи несложные, но найти решение, которое подошло бы мне, в интернетах я не смог.

1. Есть большой проект на Django 2.2.5 в связке с postgresql 10. Столкнулся с проблемной связанной с запросами: в основном все селекты выполняются за 200-500ms, но периодически бывает так, что запрос может длится и 3000, и 4000ms. Поток запросов достаточно большой и из-за таких аномалий может встать весь проект в ожидании окончания очереди. Выборка делается из нескольких таблиц (в одной 350к записей, во второй 8.5кк), проблема одна и те же, не зависимо от размера таблицы. Проявляется как будто бы в рандомном порядке, но если начинается то встает все. Подскажите, кто знает в чем может быть проблема, как правильно оптимизировать запросы к бд ?

2. В этой же джанге нужно сделать эндпоинт который будет принимать параметры, далее асинхронно отправлять запрос и потом уже логика. Вопрос в том, как в синхронном методе сделать асинхронную отправку запросов ?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Доброго времени суток. Нужна небольшая помощь по проекту, задачи несложные, но найти решение, которое подошло бы мне, в интернетах я не смог.

1. Есть большой проект на Django 2.2.5 в связке с postgresql 10. Столкнулся с проблемной связанной с запросами: в основном все селекты выполняются за 200-500ms, но периодически бывает так, что запрос может длится и 3000, и 4000ms. Поток запросов достаточно большой и из-за таких аномалий может встать весь проект в ожидании окончания очереди. Выборка делается из нескольких таблиц (в одной 350к записей, во второй 8.5кк), проблема одна и те же, не зависимо от размера таблицы. Проявляется как будто бы в рандомном порядке, но если начинается то встает все. Подскажите, кто знает в чем может быть проблема, как правильно оптимизировать запросы к бд ?

2. В этой же джанге нужно сделать эндпоинт который будет принимать параметры, далее асинхронно отправлять запрос и потом уже логика. Вопрос в том, как в синхронном методе сделать асинхронную отправку запросов ?
А разве django orm не синхронна? скорее всего никак или попробуй celery
 
1. Есть большой проект на Django 2.2.5 в связке с postgresql 10. Столкнулся с проблемной связанной с запросами: в основном все селекты выполняются за 200-500ms, но периодически бывает так, что запрос может длится и 3000, и 4000ms. Поток запросов достаточно большой и из-за таких аномалий может встать весь проект в ожидании окончания очереди. Выборка делается из нескольких таблиц (в одной 350к записей, во второй 8.5кк), проблема одна и те же, не зависимо от размера таблицы. Проявляется как будто бы в рандомном порядке, но если начинается то встает все. Подскажите, кто знает в чем может быть проблема, как правильно оптимизировать запросы к бд ?
Логирование запросов, поиск тормозящего запроса. Когда такой запрос найден, то EXPLAIN и изучение причин, дальше разбор индексов.

Если никакой связи с запросами нет, то причину надо искать в сети и на сервере БД, диск и прочее.

Ты сейчас близок к тому, чтобы понять, почему и для чего нужен мониторинг как серверов, так и приложения.

2. В этой же джанге нужно сделать эндпоинт который будет принимать параметры, далее асинхронно отправлять запрос и потом уже логика. Вопрос в том, как в синхронном методе сделать асинхронную отправку запросов ?
Любая django-совместимая очередь задач, celery, как выше сказали, или rq.
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
В двух словах, мне нужно чтобы когда кто-то стучался в мою вьюху то в телеграм канал шло уведомление об этом. Но надо это сделать так, чтобы поток не ждал пока отправится запрос.
Я хз как это правильно сделать)
У нас есть селери на другом сервере. Если у тебя есть идея как отправить таск с одного серва в селери на другой сервак, то это будет решение.
На ендпоинт будет очень много запросов
Нужно минимизировать задержку

Готов заплатить за решение.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
можешь попробовть поставить huey

Ему не обязательно нужен брокер ?
В оперативк все таски хранит ?
Пользовались им уже ?
Не будет утечек памяти ?
 
Доброго времени суток. Нужна небольшая помощь по проекту, задачи несложные, но найти решение, которое подошло бы мне, в интернетах я не смог.

1. Есть большой проект на Django 2.2.5 в связке с postgresql 10. Столкнулся с проблемной связанной с запросами: в основном все селекты выполняются за 200-500ms, но периодически бывает так, что запрос может длится и 3000, и 4000ms. Поток запросов достаточно большой и из-за таких аномалий может встать весь проект в ожидании окончания очереди. Выборка делается из нескольких таблиц (в одной 350к записей, во второй 8.5кк), проблема одна и те же, не зависимо от размера таблицы. Проявляется как будто бы в рандомном порядке, но если начинается то встает все. Подскажите, кто знает в чем может быть проблема, как правильно оптимизировать запросы к бд ?

2. В этой же джанге нужно сделать эндпоинт который будет принимать параметры, далее асинхронно отправлять запрос и потом уже логика. Вопрос в том, как в синхронном методе сделать асинхронную отправку запросов ?
В django не разбираюсь от слова совсем как и бд знаю относительно, но можешь попробовать создать в коде цикл событий который будет скидывать все забросы в стэк ну и пропиши чтобы они у тебя обрабатывались асинхронно с помощью asyncio или select или с помощью from yield как вариант...
Так же можешь попробовать реализовать многопоточность и распараллелить потоки.
Не знаю помог или нет, но то что мог то и предложил
 
Пожалуйста, обратите внимание, что пользователь заблокирован
В общем, у нас проект на django 2.2.5. Есть ендпоинты, на которые клиенты очень часто отправляют запрос (где-то каждые несколько секунд). На скрине пример одного из них.

И на данный момент с таким подходом получается, что мы имеем задержки в выполнении логики работы как раз из-за этих логов в телеграм канал.

Задача состоит в том, чтобы как-то вытащить отправку этих сообщений из основного потока и дать логике выполняться моментально, не ожидания ответа от телеграма.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
В общем, у нас проект на django 2.2.5. Есть ендпоинты, на которые клиенты очень часто отправляют запрос (где-то каждые несколько секунд). На скрине пример одного из них.

И на данный момент с таким подходом получается, что мы имеем задержки в выполнении логики работы как раз из-за этих логов в телеграм канал.

Задача состоит в том, чтобы как-то вытащить отправку этих сообщений из основного потока и дать логике выполняться моментально, не ожидания ответа от телеграма.
celery + redis ну или rabbit, но по мне редис комфортней, вообще классическая задача в принципе. Тоже самое с отправкой писем, читай документацию
 
Пожалуйста, обратите внимание, что пользователь заблокирован
celery + redis ну или rabbit, но по мне редис комфортней, вообще классическая задача в принципе. Тоже самое с отправкой писем, читай документацию
Да мне нужно чтобы человек сделал легче оплатить да и все. Кто готов взятся велком в лс
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх