2012-03-08 5 views
1

Я установил whenever gem:чистый каталог с всякий раз, когда драгоценный камень

Я хочу, чтобы очистить общедоступный каталог/загрузки/TMP в моем приложении рубин на рельсах 3.1 каждые 5 минут.

every 5.minutes do 
#here go the code for clean the directory tmp 
end 

Как я могу это сделать?

Спасибо!

ответ

2

Вы можете попробовать использовать FileUtils#rm_rf, включенные в стандартную библиотеку. Например:

FileUtils.rm_rf Dir.glob("#{Rails.root}/public/uploads/tmp/*") 

Edit (чтобы использовать его всякий раз, когда драгоценный камень)

Подход с использованием задачи рейка может быть:

1) Создать рейк задачу в f.ex: lib/tasks/cleanup.rake нечто похожее на следующее:

require 'fileutils' 

namespace :app do 
    desc "Cleanup temp uploads" 
    task :cleanup => :environment do 
    FileUtils.rm_rf Dir.glob("#{Rails.root}/public/uploads/tmp/*") 
    end 
end 

2) в config/schedule.rb (созданный, когда после протекающей г wheneverize команда):

every 5.minutes do 
    # run the previous app:cleanup task 
    rake "app:cleanup" 
end 

3) Всякая раз, когда это только обертка легко определить CRONTAB рабочих мест, так что теперь нам нужно экспортировать определенное расписание в файл кронтаб для текущего пользователя. Для этого мы должны ввести из корня приложения:

bundle exec whenever -w 

4) Вы можете проверить, что он работал, набрав crontab -l и вы должны что-то вроде следующего:

# Begin Whenever generated tasks for: /tmp/whene/config/schedule.rb 
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /bin/bash -l -c 'cd /tmp/whene && RAILS_ENV=production bundle exec rake app:cleanup --silent 

В качестве примечания, если вы хотите, чтобы операция записывала некоторые выходные данные журнала, пожалуйста, проверьте this page on the whenever github wiki.

Надеюсь, это поможет.

+0

Благодарю вас, но как я могу развернуть в каждом случае, если этот код? Еще раз спасибо :) – hyperrjas

+0

Отредактировано, чтобы показать пример того, как это делать с каждым разом, надеюсь, что это поможет. –

+0

Спасибо, что я проверил, но ничего не происходит :(Я использую mongrel на моем сервере разработки в ubuntu 10.10 maverick.Как я могу проверить, хорошо ли работает на сервере разработки? Спасибо! – hyperrjas

Смежные вопросы