Rails从初始化文件调用依赖于:环境任务的rake任务

我正在使用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。有没有更清洁的方法来解决这个问题? 谢谢。     
已邀请:
听起来你需要更多Rakefiles中没有加载的定义,可能是因为“lib / tasks / tempfile.rake”中没有任何
require
语句。 我假设这可以从命令行工作,如果是这样,你有两个选择: 加载你的应用程序的主Rakefile,其中包括所有必需的:
load File.join(RAILS_ROOT,'lib','tasks','tempfile.rake')
只需从控制台调用它:
system('rake tempfile:delete_all')
希望有所帮助!     

要回复问题请先登录注册