- 安装:
gem 'whenever', :require => false
- 生成config/schedule.rb文件
wheneverize
- config/schedule.rb中添加自己的周期性任务
whenever为我们提供了三种方法:runner,rake和command
every 1.day, at: '9:00 am' do
rake 'dealer_daily_statistic:run'
end
every 30.minute do
runner "Dealer.generate_income_record"
end
- 执行周期性任务:
whenever -i 更新定时任务,将schedule.rb中的任务更新到cronjob中
whenever -w 执行周期性任务
crontab -l 查看任务
crontab -l 发现是production环境时,可以使用crontab -e直接修改为develop环境。
whenever -c 清除crontab
cron是一个在后台运行的守护进程,crontab是一个设置cron的工具,在unix和类unix系统中用来实现周期性功能的指令。cron每分钟做一次检查,判读哪个命令可以用。
whenever事实上是一个cron翻译器,他将rails中的ruby代码翻译成cron脚本,从而将周期性的任务交给cron来执行。whenever可以使用ruby语言来写周期性任务代码,在ruby层控制代码,而不需要与shell脚本进行切换。