Class: ZQ::Sources::RedisRPOPLPUSH

Inherits:
RedisListOP show all
Includes:
TransactionalMixin
Defined in:
lib/zq/sources/redis.rb

Direct Known Subclasses

RedisTransactionalQueue

Instance Method Summary collapse

Methods included from TransactionalMixin

#transaction, #transactional?

Methods inherited from RedisListOP

method, #read_next

Methods included from NonTransactional

#transactional?

Constructor Details

#initialize(client, listname, progress_listname = nil) ⇒ RedisRPOPLPUSH

Returns a new instance of RedisRPOPLPUSH.



33
34
35
36
37
# File 'lib/zq/sources/redis.rb', line 33

def initialize(client, listname, progress_listname=nil)
  @client = client
  @listname = listname
  @progress_listname = progress_listname
end

Instance Method Details

#argsObject



39
40
41
# File 'lib/zq/sources/redis.rb', line 39

def args
  [@listname, progress_listname]
end

#commit(item) ⇒ Object



51
52
53
# File 'lib/zq/sources/redis.rb', line 51

def commit(item)
  @client.lrem(progress_listname, 0, item)
end

#progress_listnameObject



43
44
45
# File 'lib/zq/sources/redis.rb', line 43

def progress_listname
  @progress_listname || @listname + '_progress'
end

#rollback(item) ⇒ Object



47
48
49
# File 'lib/zq/sources/redis.rb', line 47

def rollback(item)
  @client.rpush(@listname, item)
end