Один из вариантов - настроить ваш запрос на веб-сервере и оставить в нем django и графен. Например, если вы используете nginx и uwsgi, и ваша конечная точка графена равна /api
, вы можете добавить это в свою конфигурацию nginx:
location = /api/ {
limit_rate_after 500k;
limit_rate 50k;
uwsgi_pass django;
include /path/to/uwsgi_params;
}
что дроссель запросов больше, чем 500k. Nginx имеет другие параметры конфигурации для ограничения в зависимости от клиента - см. https://www.nginx.com/blog/rate-limiting-nginx/ и https://docs.nginx.com/nginx/admin-guide/security-controls/controlling-access-proxied-http/#limit_rate
Очень просто реализовать, но если вам нужно регулировать на основе одного клиента, использующего несколько клиентов, этот подход не будет работать.