Class: Sneakers::Laces::ReloadWorker
- Inherits:
-
Object
- Object
- Sneakers::Laces::ReloadWorker
- Defined in:
- lib/sneakers/laces/reload_worker.rb
Constant Summary collapse
- DEFAULT_OPTS =
{ threads: 1, queue_options: { exclusive: true, auto_delete: true, durable: false } }.freeze
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.configure(worker_tags:) ⇒ Object
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/sneakers/laces/reload_worker.rb', line 16 def configure(worker_tags:) routing_keys = .map { |tag| routing_key(worker_tag: tag) } return if routing_keys.blank? include Sneakers::Worker # empty queue name makes consumer use dynamic one from_queue '', DEFAULT_OPTS.merge(routing_key: routing_keys) end |
.routing_key(worker_tag:) ⇒ Object
27 28 29 |
# File 'lib/sneakers/laces/reload_worker.rb', line 27 def routing_key(worker_tag:) ['reload', worker_tag].join(':') end |
Instance Method Details
#work(_msg) ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/sneakers/laces/reload_worker.rb', line 32 def work(_msg) # USR1 signal forces serverengine to gracefully restart child processes # https://github.com/treasure-data/serverengine#live-restart Process.kill('USR1', Process.pid) ensure ack! end |