Class: Deferrer::Queue
- Inherits:
-
Object
- Object
- Deferrer::Queue
- Defined in:
- lib/deferrer/queue.rb
Constant Summary collapse
- LIST_KEY =
'deferred_list'- ITEM_KEY_PREFIX =
'deferred'
Class Method Summary collapse
- .find(key) ⇒ Object
- .find_by_id(id) ⇒ Object
- .pop(ignore_time = false) ⇒ Object
- .push(item, timestamp) ⇒ Object
Class Method Details
.find(key) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/deferrer/queue.rb', line 27 def find(key) return nil unless key item = nil if json = redis.rpop(key) item = Item.from_json(json) end remove(key) item end |
.find_by_id(id) ⇒ Object
22 23 24 25 |
# File 'lib/deferrer/queue.rb', line 22 def find_by_id(id) return nil unless id find(item_key(id)) end |
.pop(ignore_time = false) ⇒ Object
18 19 20 |
# File 'lib/deferrer/queue.rb', line 18 def pop(ignore_time = false) find(next_key(ignore_time)) end |
.push(item, timestamp) ⇒ Object
7 8 9 10 11 12 13 14 15 16 |
# File 'lib/deferrer/queue.rb', line 7 def push(item, ) key = item_key(item.id) count = redis.rpush(key, item.to_json) # set score only on first update if count == 1 score = calculate_score() redis.zadd(LIST_KEY, score, key) end end |