Sha256: a2e3199cfcd85b4bd6f088e9c09befa9b43d6ca4f8f6393855b683367defaf67

Contents?: true

Size: 531 Bytes

Versions: 7

Compression:

Stored size: 531 Bytes

Contents

require 'mercury/mercury'
require 'bunny'

class Mercury
  class Sync
    class << self
      def publish(source_name, msg, tag: '', amqp_opts: {})
        conn = Bunny.new(amqp_opts)
        conn.start
        ch = conn.create_channel
        ch.confirm_select
        ex = ch.topic(source_name, Mercury.source_opts)
        ex.publish(WireSerializer.new.write(msg), **Mercury.publish_opts(tag, {}))
        ch.wait_for_confirms or raise 'failed to confirm publication'
      ensure
        conn.close
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
mercury_amqp-0.1.9 lib/mercury/sync.rb
mercury_amqp-0.1.7 lib/mercury/sync.rb
mercury_amqp-0.1.6 lib/mercury/sync.rb
mercury_amqp-0.1.5 lib/mercury/sync.rb
mercury_amqp-0.1.4 lib/mercury/sync.rb
mercury_amqp-0.1.3 lib/mercury/sync.rb
mercury_amqp-0.1.2 lib/mercury/sync.rb