Project

sidejobs

0.0
No commit activity in last 3 years
No release in over 3 years
Versatile async database based jobs for rails.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.2
~> 0.21

Runtime

~> 5.1
 Project Readme

Gem Version Code Climate Build Status Dependency Status

Sidejobs

Versatile async database based jobs for rails.

Why

We did this gem to:

  • Avoid the need to install another admin interface.
  • Simplify the job api by having close integration to rails.
  • Using sql instead of redis to never lose jobs.

Install

Put this line in your Gemfile:

gem 'sidejobs'

Then bundle:

$ bundle

Configuration

Generate the sidejobs configuration and migration file:

$ bundle exec rails g sidejobs:install

Set the global settings:

Sidejobs.configure do |config|
  config.max_attempts = 3
  config.sleep_delay = 15
  config.batch_size = 20
end

Run the migration to create the sidejobs table:

$ bundle exec rake db:migrate

Assign the sidejobs adapter to the environments:

Rails.application.configure do
  config.active_job.queue_adapter = :sidejobs
end

Usage

Daemon

To control the daemon, use the rake tasks:

$ bundle exec rake sidejobs:start
$ bundle exec rake sidejobs:stop
$ bundle exec rake sidejobs:restart

Queue

You can deliver mails using deliver_later:

UserMailer.invite('someone@mail.com').deliver_later

Or perform jobs using perform_later:

SendNewsletterJob.perform_later

Management

No admin interface, all is done using Sidejobs::Job model:

Sidejobs::Job.failing.where('attempts > ?', 3).destroy_all

Contributing

Any issue, pull request, comment of any kind is more than welcome!

We will mainly ensure compatibility to last versions of Ruby, Rails and PostgreSQL. 

Credits

This gem is maintained and funded by museways.

License

It is free software, and may be redistributed under the terms specified in the MIT-LICENSE file.