# ActiveBeaneater Simple beanstalk backend for Rails's ActiveJob. Require Rails 4.2 or greater WARNING: This is early alpha, not supposed to be stable. ## Installation Add this line to your application's Gemfile: ```ruby gem 'active_beaneater' ``` And then execute: $ bundle Or install it yourself as: $ gem install active_beaneater ## Usage Set your `ActiveJob` backend to active_beaneater: In `development.rb` and/or `production.rb`: ```ruby config.active_job.queue_adapter = :active_beaneater ``` The env var `BEANSTALK_URL` will be used to connect to beanstalk. ### Configuration You may configure `ActiveBeanter` in a rails initializer: ```ruby ActiveBeaneater.configure do |config| config.client = Beaneater.new("localhost:11300") # Default to BEANSTALK_URL ENV var config.prefix = 'yourapp' # Default to active-beaneater, can be an array, elements will be joined by a dot end ``` ### Creating jobs Jobs are normal ActiveJob jobs. There is an helper for ActiveBeaneater options: ```ruby class ImportJob < ActiveJob::Base include ActiveBeaneater::QueueOptions queue_as :import # Name of the queue, will be prefixed before hitting beanstalk queue_priority :low # Can be a number or :low or :high, smaller number = higher priority queue_timeout_after 15.minutes # Timeout def perform(someid) # Perform job here # You may do: # native_job.try(:touch) # To extend your timeout, like a keep alive, native_job may be nil when # running specs with another active job backend end end ``` ### Running jobs Simply issue `active_beaneater` from within your app root directory. ## Development After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` 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](https://rubygems.org). ## Contributing Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/active_beaneater. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct. ## License The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).