如何在Padrino应用程序中安装Sinatra应用程序



Resque/Sidekiq自带web前端,这是一个Sinatra应用程序。

在Rails应用中挂载它的方法是将它添加到routes (http://railscasts.com/episodes/366-sidekiq?view=asciicast):

)
mount Sidekiq::Web, at: "/sidekiq"

如何在Padrino应用程序中安装这个?像其他Rack应用程序一样在config.ru中映射它不起作用

map '/sidekiq' do
  run Sidekiq::Web
end

帕德里诺使用帕德里诺。Mount期望应用程序响应依赖项和setup_application。这个hack (https://gist.github.com/1718723)允许您在Padrino应用程序中安装Sinatra应用程序

Padrino app是一个机架应用程序,在config.ru中你会看到

require ::File.dirname(__FILE__) + '/config/boot.rb'
run Padrino.application

您可以将其更改为使用Rack::URLMap

require ::File.dirname(__FILE__) + '/config/boot.rb'
run Rack::URLMap.new("/sidekiq" => Sidekiq::Web.new, "/app" => Padrino.application.new)
  1. 添加gem 'sidekiq'到Gemfile
  2. bundle install
  3. 将以下行添加到config/boot.rb

    Padrino.before_load do
      Padrino.dependency_paths << Padrino.root('app/workers/*.rb')
    end
    
  4. 将以下行添加到config/apps.rb

    require 'sidekiq/web'
    Padrino.mount('Sidekiq', app_class: 'Sidekiq::Web', app_root: Sidekiq::Web.root).to('/sidekiq')
    
  5. app/workers/中创建任意worker

  6. Run bundle exec sidekiq -r ./config/boot.rb

最新更新