使用Sidekiq,Capistrano,Sinatra进行部署

时间:2012-10-12 16:58:41

标签: ruby sinatra capistrano sidekiq

作为与Sinatra的capistrano部署的一部分:

* 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 &"

无论如何我无法看到-r(require)指向sidekiq/issues/10的Sinatra。该应用程序位于./app/nodes.rb。

我的config.ru是

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

'./ app / nodes'在所有环境中加载节点和sidekiq都需要运行。

sidekiq/capistrano.rb中,目前没有传递-r标志的选项。

sidekiq.log按预期报告此错误:

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: 

有什么想法吗?

V

1 个答案:

答案 0 :(得分:2)

Sidekiq的创始人Mike Perham解决:on github。在sidekiq.yml中,您可以添加特定的require选项。非常感谢!