- 安装:
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
脚本进行切换。