【发布时间】:2014-07-18 18:54:42
【问题描述】:
我目前正在开发一个使用 Django-rest-framework 制作的 API。我必须根据每个用户组设置节流率。
我们目前使用默认配置的 memcached 作为缓存后端,即 per-site 缓存。
在使用AnonRateThrottle 和UserRateThrottle 进行一些简单测试时,我注意到如果用户发出的请求已经被缓存,则它不计入节流率。
文档说节流是在运行视图主体之前确定的,我猜是因为请求是从缓存中提供的,所以视图没有被执行,所以不考虑节流。
基本上我想问:
- 这是真的吗?
- 是否有办法计算缓存请求以达到节流目的? (如果可以的话,利弊)
我想到的一件事是只缓存数据库/Orm 查找,以便每个请求都执行相应的视图主体。
可能超过限制率的请求数量不是很大,并且因为它们被缓存了它们不会影响服务的性能,所以基本上我只是想知道这种情况下服务的行为.
【问题讨论】:
标签: django caching django-rest-framework throttling