- 安装
gem 'whenever', require: false
- 初始化,生成config/schedule.rb文件
$ cd /app
$ bundle exec wheneverize .
This will create an initial config/schedule.rb file
- 设置任务
# config/schedule.rb
set :output, "log/#{
ENV['RAILS_ENV']}_cron.log" #同一台机子不同环境区分log
set :environment, :development #默认是production环境,需要dev环境执行的时候添加
every 1.minute do
rake 'my_rake:test_rake'
end
every 1.day, :at => '1:00 am' do
rake 'my_rake:test_rake'
end
every 1.day, at: ['4:30 am', '6:00 pm'] do
runner "Mymodel.task_to_run_in_two_times_every_day"
end
every :sunday, at: '12pm' do # Use any day of the week or :weekend, :weekday
runner "Task.do_something_great"
end
# lib/xxx.rake
namespace :my_rake do
task test_rake: :environment do
User.puts_time
end
end
# models/user.rb</