Gem 定时任务 rufus-scheduler 小记

lonely21475 · 2014年11月04日 · 最后由 ywjno 回复于 2014年11月04日 · 3005 次阅读

1、在 Gemfile 中加入

gem 'rufus-scheduler', '3.0.9'

2、安装 gem

bundle install

3、在 config/initializers/目录下创建需要的 task.rb

#encoding : utf-8
require 'rufus-scheduler'
scheduler = Rufus::Scheduler.new

scheduler.every  '30s'  do  #每30秒执行一次任务一次

end

scheduler.in '10m' do  #在10分钟以后执行一次任务

end

scheduler.interval '5h' do  #每隔5小时执行一次

end

scheduler.at '2030/12/12 23:30:00' do #在2030/12/12 23:30:00执行一次任务

end

scheduler.cron '00 08 * * *' do  #每天早上8点执行一次任务

end

多谢分享,不过我知道更多人在用 whenever,与其贴上这些配置,楼主不妨给大家讲讲这个 gem 优于其他类似 gem 的地方?

#1 楼 @davidqhr 我对其他定时任务 gem 还不清楚,自己在做这个功能时,就使用它,所以对它比较熟悉,而且配置简单,上手简单~感谢你提供的 whenever 这个 gem,一定会去了解和对比两个 gem 差异和优缺点~

其实这类的任务更适合用队列来做 虽然 cron 是 linux 专业做这种定时任务的方式 我的感觉是这样能把定时和非定时任务做个统一

#3 楼 @zj0713001 功能针对性比较高效一些,几个功能杂糅在一起倒是不错~

在 heroku 之类的环境中没法用 cron,所以这类东东还是挺有用的

需要 登录 后方可回复, 如果你还没有账号请 注册新账号