ruby on rails中sidekiq的使用

Python08

ruby on rails中sidekiq的使用,第1张

sidekiq使用redis来保存所有的job和操作数据,所以sidekiq依赖于redis,并且sidekiq默认会去连位于localhost:6379的redis服务器,但是生产环境中可能需要自定义地址

前提:安装并启动redis,不同机器对应的安装方式可自行百度,mac下安装redis可通过

配置sidekiq所依赖的redis位置,必须同时定义sidekiq的server和client

config/initializers/sidekiq.rb

如果要使用 UNIX socket,URL 应该类似于 unix://#{Rails.root}/tmp/sockets/redis.sock

配置config/sidekiq.yml文件,一般只有在需要配置高级选项的时候才需要配置这个文件(如果不使用这个名字,可以使用-c指定 sidekiq -c config/name.yml)

文件中会生成如下内容

将耗时的程序写到perform里

注意:perform是一个实例方法,但是在调用的时候是用类调用

adapter默认使用的adapter是Active Job Inline需要指定为sidekiq才支持异步(如果是使用worker这一步可以省略)

另外由于sidekiq的进程并不是非常稳定,可定会自己断掉,所以可以配合监控工具Monit(可以监控任何进程,只需要设定启动和重开的方式即可)使用,详情还请自行百度

gemfile添加sinatra

执行

tips:

之前直接添加 gem 'sinatra' 运行时导致报错,google之后判断可能是由于sinatra gem的版本问题,导致运行时报错,修正后的sinatra gem 的为 gem 'sinatra', '2.0.0.beta2',require: false

routes.rb添加

打开Sidekiq web界面,检查该作业是否被处理,浏览器中输入

(以下纯属翻译)

注:本文讲的是Sidekiq结合ActiveJob使用的方式,也可以单独使用Sidekiq Worker

文章中注释掉的是单独使用Sidekiq Worker创建任务跟使用ActiveJob的不同部分

参考

https://github.com/mperham/sidekiq/wiki/Getting-Started

(worker)

https://ihower.tw/rails/background-process.html

(active_job)

19集。《邪恶力量》是由JimFitzpatrick、KimManners、CharlesBeeson、RobertSinger执导的灵异类电视剧,ruby在剧情中是19集死的。《邪恶力量》每一集都会出现不同的超自然现象,虽然特效好,剧情总归比较新颖。