在Rails 4中每5分钟执行一次before_filter

时间:2015-05-28 17:48:17

标签: ruby-on-rails

我在Application_controller中有多个(3)before_filter函数。

它们看起来与此相似:

def give_vip_recomend

  @list = List.where("billing_id =?", 5).first

  if @list.present?

  @v = Girl.where("country_id=?",@list.country_id).where("vip_recomend >= ?", Time.now).count
  @b = Girl.where("country_id=?",@list.country_id).where("recomend >= ?", Time.now).count

  @count = @v+@b

    if @count < 8  #pārbauda recomended anketas jau ir 4                   
      @advertisement = Girl.find_by_id(@list.advertisement_id)
      @advertisement.vip_highlight = Time.now + 2.days 
      @advertisement.paid = true    
      @advertisement.save
      @list.delete
      flash[:notice] = "Izdevās piešķirt  vip_highlight - gaidīšanas sarakstā esošam"
    end
  end
end

此时我看不到性能问题,但后来我相信它会引起一些麻烦。

问题:

是否可以逐个执行那些before_filters。例如:

every 5 minutes - execute "X" before_filter
every 7 minutes - execute "Y" before_filter

提前感谢您的时间。

祝你好运

1 个答案:

答案 0 :(得分:1)

这不应该被视为控制器工作的一部分。

考虑查看whenever gem并通过cron处理这样的工作。