2014-05-19 124 views
0

我想推出一個rake任務,我寫道:DaemonKit無法加載配置/ environment文件

namespace :collections do 
    desc "Send again collections notifications" 
    task :resend, [:account, :start_timestamp, :stop_timestamp] => [:environment] do |t, args| 
    # Code... 
    end 
end 

但輸入這個命令時,我得到了以下錯誤:

$ bundle exec rake collections:resend --trace 
** Invoke collections:resend (first_time) 
** Invoke environment (first_time) 
** Execute environment 
rake aborted! 
cannot load such file -- config/environment 
/Users/julien/.rvm/gems/ruby-1.9.3-p545/gems/daemon-kit-0.1.8.2/lib/daemon_kit/tasks/environment.rake:4:in `require' 
/Users/julien/.rvm/gems/ruby-1.9.3-p545/gems/daemon-kit-0.1.8.2/lib/daemon_kit/tasks/environment.rake:4:in `block in <top (required)>' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/rake/task.rb:205:in `call' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/rake/task.rb:205:in `block in execute' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/rake/task.rb:200:in `each' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/rake/task.rb:200:in `execute' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/rake/task.rb:158:in `block in invoke_with_call_chain' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/rake/task.rb:176:in `block in invoke_prerequisites' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/rake/task.rb:174:in `each' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/rake/task.rb:174:in `invoke_prerequisites' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/rake/task.rb:157:in `block in invoke_with_call_chain' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/rake/task.rb:144:in `invoke' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/rake/application.rb:116:in `invoke_task' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/rake/application.rb:94:in `block (2 levels) in top_level' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/rake/application.rb:94:in `each' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/rake/application.rb:94:in `block in top_level' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/rake/application.rb:88:in `top_level' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/rake/application.rb:66:in `block in run' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling' 
/Users/julien/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/rake/application.rb:63:in `run' 
/Users/julien/.rvm/gems/[email protected]/gems/rake-0.9.2.2/bin/rake:32:in `<top (required)>' 
/Users/julien/.rvm/gems/ruby-1.9.3-p545/bin/rake:23:in `load' 
/Users/julien/.rvm/gems/ruby-1.9.3-p545/bin/rake:23:in `<main>' 
/Users/julien/.rvm/gems/ruby-1.9.3-p545/bin/ruby_executable_hooks:15:in `eval' 
/Users/julien/.rvm/gems/ruby-1.9.3-p545/bin/ruby_executable_hooks:15:in `<main>' 
Tasks: TOP => collections:resend => environment 

我可以不明白錯誤,鑑於我有一個名爲config/environment.rb的文件,我不知道它是否是因爲DaemonKit。

回答

0

我終於通過DaemonKit代碼尋找解決它,並改變了我的任務是:

task :resend, [:account, :start_timestamp, :stop_timestamp] do |t, args| 
    DaemonKit::Application.running! 
    # Code 
end 

,並使其在生產環境中工作,你必須添加環境變量DAEMON_ENV=production

相關問題