安装
# 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