Вы можете попробовать использовать 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 .
Надеюсь, это поможет.