Module: Legion::Transport::Queues::RegionOutbound
- Extended by:
- Logging::Helper
- Defined in:
- lib/legion/transport/queues/region_outbound.rb
Class Method Summary collapse
- .declare_all ⇒ Object
- .declare_outbound(target_region) ⇒ Object
- .queue_name_for(target_region) ⇒ Object
Class Method Details
.declare_all ⇒ Object
13 14 15 16 17 18 19 20 21 |
# File 'lib/legion/transport/queues/region_outbound.rb', line 13 def declare_all peers = defined?(Legion::Settings) && Legion::Settings.dig(:region, :peers) return [] unless peers.is_a?(Array) && !peers.empty? current = defined?(Legion::Region) ? Legion::Region.current : nil peers.reject { |p| p == current }.map do |peer| declare_outbound(peer) end end |
.declare_outbound(target_region) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/legion/transport/queues/region_outbound.rb', line 23 def declare_outbound(target_region) queue_name = queue_name_for(target_region) channel = Legion::Transport::Connection.channel channel.queue( queue_name, durable: true, arguments: { 'x-dead-letter-exchange' => 'tasks.dlx' } ) log.info "Declared region outbound queue=#{queue_name} target_region=#{target_region}" rescue StandardError => e handle_exception(e, level: :warn, handled: true, operation: 'transport.region_outbound.declare', target_region: target_region, queue_name: queue_name) nil end |
.queue_name_for(target_region) ⇒ Object
38 39 40 |
# File 'lib/legion/transport/queues/region_outbound.rb', line 38 def queue_name_for(target_region) "legion.tasks.outbound.#{target_region}" end |