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

时间:2013-01-19 11:58:49

标签: ruby sinatra rack padrino

Resque / Sidekiq带有一个网络前端,这是一个Sinatra应用程序。

在Rails应用程序中安装它的方法是将其添加到路由(http://railscasts.com/episodes/366-sidekiq?view=asciicast):

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

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

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

3 个答案:

答案 0 :(得分:2)

Padrino使用Padrino.mount,它希望应用程序响应依赖项和setup_application。这个hack(https://gist.github.com/1718723)允许您在Padrino应用程序中安装Sinatra应用程序

答案 1 :(得分:1)

Padrino应用程序是一个机架应用程序,在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)

答案 2 :(得分:0)

  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/

  6. 中创建任何工作人员
  7. 运行bundle exec sidekiq -r ./config/boot.rb

相关问题