2010年11月18日 星期四

whenever - Cron in Ruby

其實雖說是Cron in Ruby,但卻都用在Rails上lol
Github
Railscasts - Cron in Ruby
以下內容擷取自Railscasts

先在config/environment.rb中加入這段
複製內容到剪貼板
代碼:
# config/environment.rb
config.gem 'javan-whenever', :lib => false, :source => 'http://gems.github.com'
然後下
複製內容到剪貼板
代碼:
# 這表示Windows與此無緣
sudo rake gems:install
之後,在你的Project根目錄中下此指令
複製內容到剪貼板
代碼:
wheneverize .
然後會在config/底下產生一個schedule.rb,編輯它
複製內容到剪貼板
代碼:
every 2.hours do
rake "thinking_sphinx:index"
end

every :reboot do
rake "thinking_sphinx:start"
end

every :saturday, :at => "4:38am" do
command "rm -rf #{RAILS_ROOT}/tmp/cache"
runner "Cart.remove_abandoned"
end

# config/deploy.rb
after "deploy:symlink", "deploy:update_crontab"

namespace :deploy do
desc "Update the crontab file"
task :update_crontab, :roles => :db do
run "cd #{release_path} && whenever --update-crontab #{application}"
end
end
然後儲存離開,跳出來後下
複製內容到剪貼板
代碼:
whenever --update-crontab
接著再下
複製內容到剪貼板
代碼:
crontab -l
看有沒有出現

基本上,用every設定時間必須大於等於60秒,也就是1分鐘,用小於1分鐘就會出問題





rake -T
http://en.wikipedia.org/wiki/Rake_(software)

task :addproduct => :environment (for ActiveRecord)



排程:
linux cron table

分 時 日 月 年 星期 command
*/5 * * * * *

http://rubydoc.info/gems/whenever/0.6.2/frames
/var/log
whenever --update-crontab -s environment=development
crontab -l

沒有留言:

張貼留言