Class: Distribot::TaskFinishedHandler
- Inherits:
-
Object
- Object
- Distribot::TaskFinishedHandler
show all
- Includes:
- Handler
- Defined in:
- lib/distribot/task_finished_handler.rb
Instance Attribute Summary
Attributes included from Handler
#consumers, #queue_name
Instance Method Summary
collapse
Methods included from Handler
handler_for, included, #initialize, queue_for
Instance Method Details
#announce_handler_has_finished(message) ⇒ Object
15
16
17
18
19
20
21
22
23
|
# File 'lib/distribot/task_finished_handler.rb', line 15
def announce_handler_has_finished(message)
Distribot.publish!(
'distribot.flow.handler.finished',
flow_id: message[:flow_id],
phase: message[:phase],
handler: message[:handler],
task_queue: message[:task_queue]
)
end
|
#callback(message) ⇒ Object
7
8
9
10
11
12
13
|
# File 'lib/distribot/task_finished_handler.rb', line 7
def callback(message)
task_counter_key = task_counter(message)
current_value = Distribot.redis.get(task_counter_key) || return
return unless current_value.to_i == 0
Distribot.redis.del(task_counter_key)
announce_handler_has_finished(message)
end
|
#task_counter(message) ⇒ Object
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/distribot/task_finished_handler.rb', line 25
def task_counter(message)
[
'distribot',
'flow',
message[:flow_id],
message[:phase],
message[:handler].to_s,
'finished'
].join('.')
end
|