Initial commit

This commit is contained in:
Senad Uka
2022-03-23 05:44:42 +01:00
parent 1405281a5c
commit eea10dd03b
113 changed files with 3617 additions and 81 deletions

View File

@@ -0,0 +1,32 @@
# frozen_string_literal: true
require_relative '../../amqp/amqp_service'
module SchedulePipeline
module Queue
class BunnyQueue
def initialize(destination)
@destination = destination
end
def push(msg)
amqp.default_exchange.publish(msg.to_json, routing_key: @destination)
end
def subscribe(&block)
amqp_queue.subscribe do |_delivery_info, _metadata, payload|
block.call(JSON.parse(payload).with_indifferent_access)
end
end
private
def amqp
Amqp::AmqpService.instance
end
def amqp_queue
@queue ||= amqp.queue(@destination.to_s, auto_delete: false, durable: true)
end
end
end
end