2012-04-17 105 views
0

最近我碰到運行cron作業的下面的教程來了,而無需使用任何寶石
http://www.ameravant.com/posts/recurring-tasks-in-ruby-on-rails-using-runner-and-cron-jobs軌-3 cron作業亞軍

我創建/app/delete_old_posts.rb一個文件

class DeleteOldPosts < ActiveRecord::Base   
    # This script deletes all posts that are over 5 minutes old   
    post_ids = Post.find(:all, :conditions => ["created_at < ?", 5.minutes.ago])   
    if post_ids.size > 0  
     Post.destroy(post_ids)  
     puts "#{post_ids.size} posts have been deleted!"  
    end  

然後捐贈的crontab -e命令創建cron作業和的cronjob的控制檯我寫

*/2 * * * * /usr/bin/env ruby /home/abc/xyz/urjit.rajgor/workspace/thewall/rails/runner/home/XYZ/ABC/urjit.rajgor/workspace/thewall/app/delete_old_posts.rb   

的cronĴ ob每兩分鐘後運行,但它沒有工作
請幫助我。
謝謝

+0

如果這是實際的crontab命令,它看起來像你錯過了'/''前home'。 – bhamby 2012-04-17 13:46:28

+0

感謝您的回覆。 但對不起,我編輯命令已經/在家之前,但它仍然不工作 – 2012-04-17 13:57:56

回答

0

嘗試使用「每當」寶石。 允許您在ruby中定義您的cronjobs,以便能夠指定rails runner,rake或其他自定義包裝,並且它可以爲您編寫crontab。讓生活更簡單。

只需添加:gem 'whenever', :require => false到您的Gemfile

https://github.com/javan/whenever

http://railscasts.com/episodes/164-cron-in-ruby

+0

感謝您的答案,但我嘗試安裝它,它給了我這個錯誤,當我跑wheneverize。命令 錯誤是wheneverize:命令未找到 所以,你可以幫助我做到這一點,而不使用任何寶石? – 2012-04-18 05:13:35

+1

你是否使用bundle exec執行它? – cpuguy83 2012-04-20 12:48:46

+0

謝謝,當我用bundle exec運行它時,它的工作適用於我。 – 2012-04-21 04:17:51