限制用户每分钟可以执行多少操作的最佳方法是什么?
@route('/do_something/<cmd>',method=['GET','POST'])
def my_command(cmd):
# Only allow this to be executed once every 60s per user/ip.
我正在寻找服务器端解决方案,因为我想根据用户的IP地址强制执行此操作。
答案 0 :(得分:1)
python中可能已经存在throttling
个解决方案,更具体地说是瓶子框架。
您可以使用存储和一些小脚本来推出自己的脚本。
因为,你的限制时间很短,即1分钟,memcache将是存储值的好候选者。
3 (一个)。价值不存在: - 将当前时间戳整数存储在memcache中,并将此哈希作为密钥,TTL为1分钟。
(b)价值存在: - 放弃请求。
这是一个为redis编写的非常好的装饰器(用于烧瓶框架,但也适用于其他任何地方):