您的位置:首页 > 其它

Sidekiq基础的基础

2015-06-12 21:32 134 查看
基础知识

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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: