sidekiq异步处理任务

来源:互联网 发布:淘宝店铺怎么发微淘 编辑:程序博客网 时间:2024/06/15 20:13

安装

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'  endend

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: 5development:  :concurrency: 5production:  :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: falsegem 'slim'

bundle install

修改rount.rb,挂载访问地址

require 'sidekiq/web'Ironmine::Application.routes.draw do  mount Sidekiq::Web, at: "/sidekiq" ......end

访问/sidekiq,对sidekiq执行状态进行监控


原创粉丝点击