安装
# Gemfile gem 'sidekiq'# console $ bundle install
设定
Sidekiq
见「Advanced Options」,ActiveJob使用的redis队列名称为default,ActionMailer使用的redis队列名称为mailers。
concurrency参数需要小于或等于config/database.yml中的pool值。
# config/sidekiq.yml :concurrency: 16 :queues: — [‘default’, 1] — [“mailers”, 1]
ActiveJob使用Sidekiq
见「Active Job」,在environments/development.rb与environments/production.rb中填入:
# environments/development.rb config.active_job.queue_adapter = :sidekiq # environments/production.rb config.active_job.queue_adapter = :sidekiq
设置Sidekiq管理介面
Sidekiq提供了一个管理介面,见「Authentication」,要合并管理介面加入既有的Rails专案,只需要在config/routes.rb中加入:
# config/routes.rb require 'sidekiq/web' mount Sidekiq::Web => '/sidekiq'
为sidekiq管理介面做权限控制管,只让admin可以查看管理介面,使用devise+ cancancan做例子:
# config/routes.rb
require 'sidekiq/web'
authenticate :user, ->(u) { Ability.new(u).can? :manage, :admin } do
mount Sidekiq::Web => 'admin/sidekiq'
end
authenticate :user, ->(u) { condition }这个式子中的condition是true即可通过验证。
执行
$ sidekiq -C config/sidekiq.yml
转载需保留链接来源:软件玩家 » Rails设置Sidekiq

Ruby查找两列差异
Ruby字母算术、传递值以及传递引用