Class: Qtrix::Override
Constant Summary
collapse
- REDIS_KEY =
:overrides
- REDIS_CLAIMS_KEY =
:override_claims
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
extract_args, included, redis, redis_namespace
Instance Attribute Details
#host ⇒ Object
Returns the value of attribute host.
58
59
60
|
# File 'lib/qtrix/override.rb', line 58
def host
@host
end
|
#queues ⇒ Object
Returns the value of attribute queues.
58
59
60
|
# File 'lib/qtrix/override.rb', line 58
def queues
@queues
end
|
Class Method Details
.add(*args) ⇒ Object
8
9
10
11
12
13
14
15
|
# File 'lib/qtrix/override.rb', line 8
def add(*args)
namespace, queues, processes = (2, *args)
validate!(processes)
processes.times do
redis(namespace).rpush(REDIS_KEY, queues.join(","))
end
Qtrix::Matrix.clear!(namespace)
end
|
.all(ns = :current) ⇒ Object
17
18
19
20
21
22
23
24
|
# File 'lib/qtrix/override.rb', line 17
def all(ns=:current)
[].tap do |result|
raw_list(ns).each_with_index do |queues, index|
host = redis(ns).lindex(REDIS_CLAIMS_KEY, index)
result << self.new(queues.split(",").map(&:to_sym), host)
end
end
end
|
.clear!(namespace = :current) ⇒ Object
32
33
34
35
|
# File 'lib/qtrix/override.rb', line 32
def clear!(namespace=:current)
redis(namespace).del REDIS_KEY
Qtrix::Matrix.clear!(namespace)
end
|
.overrides_for(*args) ⇒ Object
37
38
39
40
41
|
# File 'lib/qtrix/override.rb', line 37
def overrides_for(*args)
namespace, hostname, workers = (2, *args)
workers.times {redis(namespace).rpush(REDIS_CLAIMS_KEY, hostname)}
claimed_by(namespace, hostname).map{|override| override.queues}
end
|
.remove(*args) ⇒ Object
26
27
28
29
30
|
# File 'lib/qtrix/override.rb', line 26
def remove(*args)
namespace, queues, processes = (2, *args)
redis(namespace).lrem(REDIS_KEY, processes, queues.join(","))
Qtrix::Matrix.clear!(namespace)
end
|
Instance Method Details
#eql?(other) ⇒ Boolean
Also known as:
==
64
65
66
67
68
|
# File 'lib/qtrix/override.rb', line 64
def eql?(other)
self.class.equal?(other.class) &&
@processes == other.processes &&
@queues == other.queues
end
|
#hash ⇒ Object
60
61
62
|
# File 'lib/qtrix/override.rb', line 60
def hash
@queues.hash ^ @processes.hash
end
|