Sidekiq基础的基础

基础知识
sidekiq是一种后台作业处理的框架,它可以在后台执行工作,以扩展你的应用程序,这需要三个部分:

1.Client

Sidekiq client在你的web应用程序中运行,允许你把作业放在后台进行处理。在应用的代码中,有三种方式可以创建一个Job:

MyWorker.perform_async(1, 2, 3)
SomeClass.delay.some_class_method(1, 2, 3)                      # See Delayed Extensions wiki page
Sidekiq::Client.push('class' => MyWorker, 'args' => [1, 2, 3])  # Lower-level generic API
Sidekiq::Client.push('class' => 'MyWorker', 'args' => [1, 2, 3])  # Can also pass class as a string.

这三种方式都是创建一个Hash用于表示某个人物,然后将Hash转换成JSON字符串,并将这个字符串添加到Rails的一个队列中。这以为这worker的参数必须是简单的JSON数据类型(numbers, strings, boolean, array, hash)。复杂的Ruby对象(比如日期,事件,ActiveRecord实例)不会被正确的转换。

2.Redis

Redis为sidekiq提供数据存储,It holds all the job data along with runtime and historical data to power Sidekiq’s Web UI.

3.Server

每个sidekiq服务进程从Redis的队列中获取并处理任务。就像你的web进程一样,sidekiq引导Rails,所以你的任务和workers可以使用所有的Rails API,包括ActiveRecord。Server将会实例化你的worker,并且传递参数给worker。Everything else is up to your code.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值