чистый каталог с всякий раз, когда драгоценный камень - PullRequest
1 голос
/ 08 марта 2012

Я установил всякий раз, когда gem :

Я хочу очищать каталог public / uploads / tmp в моем ruby ​​приложения на рельсах 3.1 каждые 5 минут.

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

Как мне это сделать?

Спасибо!

1 Ответ

2 голосов
/ 08 марта 2012

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

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

Редактировать (использовать с каждым драгоценным камнем)

Подход с использованием граблей может быть следующим:

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, теперь нам нужно экспортировать определенное расписание в файл 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

В качестве примечания: если вы хотите, чтобы операция записывала какой-либо вывод журнала, пожалуйста, проверьте эту страницу на всякий раз, когда github wiki .

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...