Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Ruby

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
spec
.gitignore
.rspec
CHANGELOG
Gemfile
LICENSE
README.rdoc
Rakefile
amqp-boilerplate.gemspec

README.rdoc

amqp-boilerplate

amqp-boilerplate is a set of helper classes and modules to be used with the {github.com/ruby-amqp/amqp Ruby amqp gem}.

Install

gem install amqp-boilerplate

Configuration

See {AMQP::Boilerplate.configure} for configuration options.

Ruby on Rails

Add a initializer amqp.rb to your config/initializer folder with the following code:

Rails.configuration.threadsafe!

AMQP::Boilerplate.configure do |config|
  config.logger = ::Rails.logger
  config.consumer_paths += %W( #{Rails.root}/app/consumers )
  config.connection_options = { :host => "localhost", :port => 5672, :vhost => Rails.env }
  config.on_unhandled_exception = Proc.new { |exception, consumer, metadata, payload|
    puts "Do something with exceptions: #{exception}"
  }
  config.consumer_prefetch = 10
end

# Require all files that are no longer auto-loaded when Rails is in thread-safe mode
Dir[File.expand_path(File.join(Rails.root,'lib','**','*.rb'))].each {|f| require f}
Dir[File.expand_path(File.join(Rails.root,'app','producers','**','*.rb'))].each {|f| require f}

AMQP::Boilerplate.boot

Usage

amqp-boilerplate provides the AMQP::Boilerplate::Producer module for creating message producers, and the AMQP::Boilerplate::Consumer class for setting up a message consumer.

Producers

The following sample code shows a basic producer.

class MyProducer
  extend AMQP::Boilerplate::Producer

  amqp :routing_key => "hello.world"
  amqp_message :message

  def message
    "Look! I am a string that will be posted to the exchange."
  end
end

For more information please refer to {AMQP::Boilerplate::Producer}

Consumers

The following sample code shows a basic consumer.

class MyConsumer < AMQP::Boilerplate::Consumer
  amqp_queue "hello.world"

  def handle_message(payload, metadata)
    puts "Received message: #{payload}"
  end
end

For more information please refer to {AMQP::Boilerplate::Consumer}

License

amqp-boilerplate is released under the MIT license.

Something went wrong with that request. Please try again.