Sha256: b0beac381e765e4c399c189f22362c0678a7057d684c9945d2b36ce65f6fd7f6

Contents?: true

Size: 814 Bytes

Versions: 14

Compression:

Stored size: 814 Bytes

Contents

class Freddy
  module Producers
    class SendAndForgetProducer
      CONTENT_TYPE = 'application/json'.freeze

      def initialize(channel, logger)
        @logger = logger
        @exchange = channel.default_exchange
        @topic_exchange = channel.topic Freddy::FREDDY_TOPIC_EXCHANGE_NAME
      end

      def produce(destination, payload, properties)
        Producers.log_send_event(@logger, payload, destination)

        properties = properties.merge(routing_key: destination, content_type: CONTENT_TYPE)
        json_payload = Payload.dump(payload)

        # Connection adapters handle thread safety for #publish themselves. No
        # need to lock these.
        @topic_exchange.publish json_payload, properties.dup
        @exchange.publish json_payload, properties.dup
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 2 rubygems

Version Path
freddy-1.0.1 lib/freddy/producers/send_and_forget_producer.rb
freddy-jruby-1.0.0 lib/freddy/producers/send_and_forget_producer.rb
freddy-1.0.0 lib/freddy/producers/send_and_forget_producer.rb
freddy-jruby-0.7.2 lib/freddy/producers/send_and_forget_producer.rb
freddy-0.7.2 lib/freddy/producers/send_and_forget_producer.rb
freddy-0.7.1 lib/freddy/producers/send_and_forget_producer.rb
freddy-0.7.0 lib/freddy/producers/send_and_forget_producer.rb
freddy-0.6.3 lib/freddy/producers/send_and_forget_producer.rb
freddy-0.6.2 lib/freddy/producers/send_and_forget_producer.rb
freddy-0.6.1 lib/freddy/producers/send_and_forget_producer.rb
freddy-jruby-0.6.0 lib/freddy/producers/send_and_forget_producer.rb
freddy-0.6.0 lib/freddy/producers/send_and_forget_producer.rb
freddy-0.5.8 lib/freddy/producers/send_and_forget_producer.rb
freddy-0.5.7 lib/freddy/producers/send_and_forget_producer.rb