2012-10-12 8 views
5

Im Rahmen eines Capistrano mit Sinatra bereitstellen:Mit Sidekiq, Capistrano, Sinatra für entfalten

* executing `sidekiq:start' 
* executing "cd /var/www/nodes/current ; nohup bundle exec sidekiq -e production -C /var/www/nodes/current/config/sidekiq.yml -P /var/www/nodes/current/tmp/pids/sidekiq.pid -r /var/www/nodes/current/app/nodes.rb >> /var/www/nodes/current/log/sidekiq.log 2>&1 &" 

ich sowieso nicht die -r bekommen sehen kann (erforderlich) gemäß sidekiq/issues/10 meiner Sinatra zeigen. Die App lebt in ./app/nodes.rb.

mein config.ru ist

require './app/nodes' 
run Nodes 
map '/sidekiq' do 
    run Sidekiq::Web 
end 

‘./app/nodes' Lasten in allen Umwelt beide Knoten und sidekiq ausgeführt werden muss.

In sidekiq/capistrano.rb gibt es derzeit keine Option, ein -r-Flag zu übergeben.

sidekiq.log meldet diesen Fehler, wie erwartet:

2012-10-12T01:04:59Z 8175 TID-bf65s INFO:     
2012-10-12T01:04:59Z 8175 TID-bf65s INFO: Please point sidekiq to a Rails 3 application or a Ruby file 
2012-10-12T01:04:59Z 8175 TID-bf65s INFO: to load your worker classes with -r [DIR|FILE]. 
2012-10-12T01:04:59Z 8175 TID-bf65s INFO: 

Irgendwelche Ideen?

V

Antwort

2

Gelöst von Mike Perham, der Schöpfer von Sidekiq: on github. In sidekiq.yml können Sie eine spezifische require-Option hinzufügen. Vielen Dank!

+0

+1 für die Antwort – ksiomelo