/simplejob

Painless job queueing, backed by AMQP.

Primary LanguageRubyMIT LicenseMIT

simplejob

Painless job queueing, backed by AMQP.

  • Super simple interface
  • Robust jobs that never get lost
  • Jobs don't get marked complete until they are finished (they survive reboots/kill -9)
  • One work queue per worker pool, with one or more job names mapped to each work queue (for easy monitoring)
  • Jobs which throw exceptions are logged and removed, preventing infinite job-retry loops

Installation

$ gem install simplejob

Example

Start your RabbitMQ server (install one if necessary).

Producer

require "simplejob"

SimpleJob.send("hello")

Consumer

require "simplejob"

SimpleJob::Worker.start do
  handle "hello" do |props|
    puts "got it!"
  end
end

Run

$ ruby -rubygems producer.rb
$ ruby -rubygems consumer.rb

More examples

See the examples directory.