Tackle

Build Status

Tackles the problem of processing asynchronous jobs in reliable manner by relying on RabbitMQ.

Installation

Add this line to your application's Gemfile:

gem "rt-tackle", :require => "tackle"

Usage

Subscribe consumer:

require "tackle"

options = {
  :url         => "amqp://localhost", # optional
  :exchange    => "test-exchange",    # required
  :routing_key => "test-messages",    # required
  :queue       => "test-queue",       # required
  :retry_limit => 8,                  # optional
  :retry_delay => 30,                 # optional
  :logger      => Logger.new(STDOUT)  # optional
}

Tackle.subscribe(options) do |message|
  # Do something with message
end

Publish message:


options = {
  :url         => "amqp://localhost", # optional
  :exchange    => "test-exchange",    # required
  :routing_key => "test-messages",    # required
  :logger      => Logger.new(STDOUT)  # optional
}

Tackle.publish("Hello, world!", options)

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake rspec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/renderedtext/tackle.