Module: Waitmate::Store

Defined in:
lib/waitmate/store.rb,
lib/waitmate/store/redis.rb,
lib/waitmate/store/solid_cache.rb

Overview

Public seam for all queue/storage operations. Host controllers and engine UI call Waitmate::Store, never a concrete adapter.

Defined Under Namespace

Classes: ConfigurationError, ConnectionError, Error, Redis, SolidCache

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.adapterObject



49
50
51
# File 'lib/waitmate/store.rb', line 49

def adapter
  @adapter ||= build_adapter(Waitmate.configuration.adapter)
end

Class Method Details

.active_count(queue_name) ⇒ Object

active_count(queue_name) -> Integer



25
26
27
# File 'lib/waitmate/store.rb', line 25

def active_count(queue_name)
  adapter.active_count(queue_name)
end

.admit(queue_name, max_concurrent, count: max_concurrent) ⇒ Object

admit(queue_name, max_concurrent, count: max_concurrent) -> Array



30
31
32
# File 'lib/waitmate/store.rb', line 30

def admit(queue_name, max_concurrent, count: max_concurrent)
  adapter.admit(queue_name, max_concurrent, count: count)
end

.enqueue(queue_name, identity, ttl: nil) ⇒ Object

enqueue(queue_name, identity, ttl: nil) -> Integer (1-based position) or 0 (already active)



15
16
17
# File 'lib/waitmate/store.rb', line 15

def enqueue(queue_name, identity, ttl: nil)
  adapter.enqueue(queue_name, identity, ttl: ttl)
end

.expire_stale(queue_name) ⇒ Object

expire_stale(queue_name) -> Hash Integer, active: Integer



45
46
47
# File 'lib/waitmate/store.rb', line 45

def expire_stale(queue_name)
  adapter.expire_stale(queue_name)
end

.heartbeat(queue_name, identity, ttl: nil) ⇒ Object

heartbeat(queue_name, identity, ttl: nil) -> Boolean



40
41
42
# File 'lib/waitmate/store.rb', line 40

def heartbeat(queue_name, identity, ttl: nil)
  adapter.heartbeat(queue_name, identity, ttl: ttl)
end

.position(queue_name, identity) ⇒ Object

position(queue_name, identity) -> Integer (1-based), 0 (active), or nil



20
21
22
# File 'lib/waitmate/store.rb', line 20

def position(queue_name, identity)
  adapter.position(queue_name, identity)
end

.release(queue_name, identity) ⇒ Object

release(queue_name, identity) -> Boolean



35
36
37
# File 'lib/waitmate/store.rb', line 35

def release(queue_name, identity)
  adapter.release(queue_name, identity)
end

.reset_adapter!Object



55
56
57
# File 'lib/waitmate/store.rb', line 55

def reset_adapter!
  @adapter = nil
end