我的路线档案:
require 'sinatra'
require 'sidekiq'
require 'sidekiq/web'
require 'sequel'
get '/' do
# Some stuff
end
get '/sidekiq' do
run Sidekiq::Web
end
转到http://localhost:4567/sidekiq
:
NoMethodError at /sidekiq
undefined method `run' for #<Sinatra::Application:0x007f670d2123b8>
我使用bundle exec sidekiq -r ./workers/gyf_downloader.rb
首先启动Sidekiq,然后bundle exec ruby routes.rb
启动Sinatra应用。
有关如何使其发挥作用的任何建议?
我已修复以下错误:
Internal Server Error
undefined method `join' for #<String:0x007fa504414c08>
WEBrick/1.3.1 (Ruby/2.2.1/2015-02-26) at localhost:4567
在我的gemfile中使用gem 'sinatra', git: 'git@github.com:sinatra/sinatra.git'
,根据Mike Perham在下面的回答说要查看this Sinatra issue on github。
答案 0 :(得分:2)
这是Sinatra的一个已知问题:
答案 1 :(得分:2)
将以下代码添加到 config.ru
。首先定义应用程序的路径,然后定义sidekiq。接下来,您应该添加Sidekiq配置和路径映射路由。
# config.ru
require './app'
require 'sidekiq'
require 'sidekiq/web'
Sidekiq.configure_client do |config|
config.redis = { url: "redis://#{ENV['REDIS_HOST']}:#{ENV['REDIS_PORT']}" }
end
run Rack::URLMap.new('/' => App, '/sidekiq' => Sidekiq::Web)