Я использую планировщик rufus для замены заданий cron из системы развертывания и запуска этих заданий при загрузке приложения при развертывании.
Теперь у меня есть этот scheduler.rb, помещенный в config /Каталог initializers из корневого каталога приложения.
Содержимое файла scheduler.rb выглядит следующим образом:
require 'rufus/scheduler'
require 'rubygems'
require 'rake'
load File.join(RAILS_ROOT,'lib','tasks','tempfile.rake')
temp_files_cleaning_scheduler = Rufus::Scheduler.start_new
temp_files_cleaning_scheduler.cron '*/1 * * * *' do
Rake::Task["tempfile:delete_all"].reenable
Rake::Task["tempfile:delete_all"].invoke
end
Теперь, когда я запускаю сервер приложений, я получаю сообщение об ошибке, как показано ниже:
scheduler caught exception :
Don't know how to build task 'environment'
/home/karthik/.rvm/gems/jruby-1.5.2/gems/rake-0.8.7/lib/rake.rb:1728:in `[]'
/home/karthik/.rvm/gems/jruby-1.5.2/gems/rake-0.8.7/lib/rake.rb:605:in `invoke_prerequisites'
где 'environment' - это зависимая задача для задачи "tempfile: delete_all", которую я вызываю.И это: задача среды определена в railties / lib / tasks / misc.rake.
Я не хочу загружать этот файл misc.file путем жесткого кодирования пути к нему. Есть ли более чистый способ решения этой проблемы?
Спасибо.