5

作为使用 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 &"

根据sidekiq/issues/10,我无论如何都看不到让 -r (要求)指向我的 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: 

有任何想法吗?

4

1 回答 1

2

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

于 2012-10-13T12:37:30.243 回答