Repository URL to install this package:
|
Version:
0.2.13 ▾
|
rrq
/
README.md
|
|---|
Round-robin Queue, with focus on reliability.
Add this line to your application's Gemfile:
gem 'rrq'
And then execute:
$ bundle
$rrq = Rrq::Connection.new $rrq.redis = $redis Rrq::Manager.new($rrq).recover! # Run this on startup for one process
payload = { klass: "MessageProcessor", args: [1, 2 ,3] }
$rrq.push("messages", company.id, payload)
loop do message = $rrq.pop payload = message["payload"] worker = payload["klass"].constantize.new worker.perform(*payload["args"]) $rrq.ack(message) end
Message structure:
{ message_id: "d41d8cd98f00b204e9800998ecf8427e", queue: "queue_name", partition: "123", payload: { key: "value" } }
rrq:queues (Set) => Contains a list of all queuesrrq:queue:<queue name>:all_partitions (Set) => Contains a list of partitions for a particular queuerrq:queue:<queue name>:active_partitions (List) => A copy of the all_partitions set but to be used for round-robin distribution of partitions.rrq:queue:<queue name>:<partition> (List) => A list of messages for a particular queue + partitionrrq:queue:<queue name>:<partition>:working (List) => A list of unaknowledged messages for a particular queue + partitiongit checkout -b my-new-feature)git commit -am 'Add some feature')git push origin my-new-feature)