1

Resque/Sidekiq 带有一个 Web 前端,它是一个 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
4

3 回答 3

2

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

于 2013-01-19T11:58:48.703 回答
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)
于 2013-01-19T13:20:52.717 回答
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. bundle exec sidekiq -r ./config/boot.rb

于 2016-05-17T03:49:53.170 回答