Я работаю в фоновом режиме с помощью Clockworkd. Если я просто запускаю часовую работу, он успешно выполняет команду rake. Если я запустил его через clockworkd, это приведет к ошибке. Я не уверен, почему он не работает. Любые советы/предложения будут оценены.Clockwork/Clockworkd производит 'No Rakefile found (ищет: rakefile, Rakefile, rakefile.rb, Rakefile.rb)'
Начальная clockworkd
RAILS_ENV=production clockworkd -c lib/clock.rb start --log
ошибка
I, [2013-09-05T17:53:01.035923 #2580] INFO -- : Triggering 'Get Updates'
rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
/Users/lukesmith/.rvm/gems/ruby-1.9.3-p327/gems/rake-10.1.0/lib/rake/application.rb:632:in `raw_load_rakefile'
/Users/lukesmith/.rvm/gems/ruby-1.9.3-p327/gems/rake-10.1.0/lib/rake/application.rb:94:in `block in load_rakefile'
/Users/lukesmith/.rvm/gems/ruby-1.9.3-p327/gems/rake-10.1.0/lib/rake/application.rb:165:in `standard_exception_handling'
/Users/lukesmith/.rvm/gems/ruby-1.9.3-p327/gems/rake-10.1.0/lib/rake/application.rb:93:in `load_rakefile'
/Users/lukesmith/.rvm/gems/ruby-1.9.3-p327/gems/rake-10.1.0/lib/rake/application.rb:77:in `block in run'
/Users/lukesmith/.rvm/gems/ruby-1.9.3-p327/gems/rake-10.1.0/lib/rake/application.rb:165:in `standard_exception_handling'
/Users/lukesmith/.rvm/gems/ruby-1.9.3-p327/gems/rake-10.1.0/lib/rake/application.rb:75:in `run'
/Users/lukesmith/.rvm/gems/ruby-1.9.3-p327/gems/rake-10.1.0/bin/rake:33:in `<top (required)>'
/Users/lukesmith/.rvm/gems/ruby-1.9.3-p327/bin/rake:23:in `load'
/Users/lukesmith/.rvm/gems/ruby-1.9.3-p327/bin/rake:23:in `<main>'
clock.rb
require 'clockwork'
require File.expand_path('../../config/boot', __FILE__)
require File.expand_path('../../config/environment', __FILE__)
include Clockwork
handler do |job|
puts "Running #{job}"
end
every(1.hour, 'Get Updates') { `rake get_updates` }
Я связан с файлом, но затем бросил ошибку «Не знаю, как построить задачу 'Окружающая среда''. Поэтому я предполагаю, что он не работает так же, как и часы, поскольку он не может ничего запускать в контексте приложения Rails. Окружающая среда, относящаяся к определению задачи в моем файле рейка (я предполагаю) -> задача: get_updates =>: environment do –
А, вам, возможно, потребуется выполнить 'chdir' в конце концов, так как, возможно, весь ваш процесс, возможно, потребуется каталог верхнего уровня вашего приложения, чтобы Rake знал о встроенных задачах Rails Rake. Я обновил свой ответ, чтобы включить 'Dir.chdir' заранее, и удалить явную опцию' -f'. –