安装
gem install sidekiq
或修改Gemfile之后bundle install
gem 'sidekiq'
使用方法:1 定义异步处理worker类
将worker类放置于app/workers
class HardWorker
include Sidekiq::Worker
def perform(name, count)
puts 'Doing hard work'
end
end
2 加入异步任务处理队列
在controller或model中调用
HardWorker.perform_async('lissdy', 5)
3 定义配置文件config/sidekiq.yml
:verbose: false
:pidfile: ./tmp/pids/sidekiq.pid
:logfile: ./log/sidekiq.log
:queues:
- [phoenix_job,7]
- [default, 2]
staging:
:concurrency: 5
development:
:concurrency: 5
production:
:concurrency: 50
4 启动服务在rails应用根目录下执行命令:
bundle exec sidekiq -C config/sidekiq.yml 调试启动方式
bundle exec sidekiq -C config/sidekiq.yml -d 后台启动方式
bundle exec sidekiq -C config/sidekiq.yml -d -e production 指定环境启动
监控sidekiq安装所需包,Gemfile中加入
gem 'sinatra', require: false
gem 'slim'
bundle install
修改rount.rb,挂载访问地址
require 'sidekiq/web'
Ironmine::Application.routes.draw do
mount Sidekiq::Web, at: "/sidekiq"
......
end
访问/sidekiq,对sidekiq执行状态进行监控