Class: Redistat::Buffer
Class Method Summary
collapse
Instance Method Summary
collapse
included, monitor, thread_safe, thread_safe=
Class Method Details
.instance ⇒ Object
7
8
9
|
# File 'lib/redistat/buffer.rb', line 7
def self.instance
@instance ||= self.new
end
|
Instance Method Details
#count ⇒ Object
23
24
25
|
# File 'lib/redistat/buffer.rb', line 23
def count
@count ||= 0
end
|
#flush(force = false) ⇒ Object
53
54
55
56
57
58
59
|
# File 'lib/redistat/buffer.rb', line 53
def flush(force = false)
to_flush = {}
synchronize do
to_flush = reset_queue(force)
end
flush_data(to_flush)
end
|
#size ⇒ Object
11
12
13
14
15
|
# File 'lib/redistat/buffer.rb', line 11
def size
synchronize do
@size ||= 0
end
end
|
#size=(value) ⇒ Object
17
18
19
20
21
|
# File 'lib/redistat/buffer.rb', line 17
def size=(value)
synchronize do
@size = value
end
end
|
#store(key, stats, depth_limit, opts) ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/redistat/buffer.rb', line 27
def store(key, stats, depth_limit, opts)
return false unless should_buffer?
to_flush = {}
buffkey = buffer_key(key, opts)
synchronize do
if !queue.has_key?(buffkey)
queue[buffkey] = { :key => key,
:stats => {},
:depth_limit => depth_limit,
:opts => opts }
end
queue[buffkey][:stats].merge_and_incr!(stats)
incr_count
to_flush = reset_queue
end
flush_data(to_flush)
true
end
|