论坛首页 编程语言技术论坛

resque-restriction

浏览 2224 次
精华帖 (0) :: 良好帖 (3) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-05-04  
Hi

我上周写了一个resque的扩展resque-restriction,resque是基于redis的ruby实现的background job系统(github实现和使用的)。resque-restriction增加了两个功能:

1. 它可以限制特定的job在一段时间的执行次数。比如,它可以限制某个job在一天内只能执行1000次,每小时只能执行100次,每300秒只能执行30 次。

2. 它会在下一个时间段执行上一个时间段没能执行的job(超过了限制次数)。比如,你限制每天只能执行1000次发送email的job,如果有一天系统生成了1010个email发送的job,那么这一天只执行1000个email发送的job,剩下的10个email发送的job将在第二天执行。

resque-restriction需要在resque 1.7.0下使用。

当一个系统有email邀请的resque job时,resque-restriction非常有用,因为发送邮件太频繁了会被当作垃圾邮件。

给大家一个使用resque-restriction的例子看看:

class InvitationJob < Resque::Plugins::RestrictionJob
  restrict :per_day => 1000, :per_hour => 100, :per_300 => 30
end



这意味着,InvitationJob每天的执行次数不会超过1000次,每个小时的执行次数不会超过100次,每300秒的执行次数不会超过30次,很简单吧。

项目的地址是:http://github.com/flyerhzm/resque-restriction
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics