在不使用cron的情况下在Rails中的特定时间执行任务

时间:2014-03-06 19:01:35

标签: ruby-on-rails ruby-on-rails-4 cron scheduled-tasks

我想每天午夜从数据库中删除一些记录。 是否可以在不使用cron作业或各种gems(例如whatever和delayed_job)的情况下执行此操作?

记录只是一个计数器,每次用户点击某个按钮时都会计算,但每天只允许10次点击,一旦点击10次,按钮就会被禁用。用户计数在午夜重置为0。 计数可以存储在会话变量中并设置为过期吗?

2 个答案:

答案 0 :(得分:0)

我想如果你真的不能使用cron,你可以在你的服务器上运行ruby脚本:

while true do
  sleep 3600

  if Time.now.hour == 0
    `bundle exec rake run:your:thing`
  end
end

但是cron非常适合这类事情。

答案 1 :(得分:0)

为什么需要删除记录?您可以在更新计数器时保存日期,并在上次保存的日期与今天不相等时重置计数器。