发布于 2015-09-13 08:01:35 | 227 次阅读 | 评论: 0 | 来源: PHPERZ

限制客户端请求(Throttling)

有些场合,我们并不想让用户在短时间内过于频繁地调用某个动作。 这时,可以让Piston在全局的基础层面上限制用户请求,在限制期限内有效地阻止客户端访问。

Piston在使用OAuth的情况下,会利用OAhth在每个消费者应用的底层对客户端访问进行限制。 若没有使用OAuth,受限规则会取决于已登录用户;对于匿名请求,受限规则则取决于客户端IP地址。

限制客户端请求是通过添加@throttle装饰器实现的。该装饰器有两个必填参数和一个可选参数。

第一个参数是某个时间段内允许的请求数量。

第二个参数就是该时间段的时长,以秒为单位。

第三个参数是一个可选的字符串, 会被添加到缓存key中。我们可以利用该参数为一组或一个动作进行限制。不提供该参数的话,Piston默认只对当前动作进行限制。

举个例子:

#!python

@throttle(5, 10*60)
def create(...):

在这个例子中,客户端在10分钟内调用’create’的次数会限制在5次。

也可以对动作分组限制:

#!python

@throttle(5, 10*60, 'user_writes')
def create(...):

@throttle(5, 10*60, 'user_writes')
def update(...):
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务