2012-08-07 16:01:34 -04:00
Sidekiq
2012-01-21 19:42:21 -05:00
==============
2012-01-16 18:17:42 -05:00
2013-04-09 18:22:01 -04:00
[![Gem Version ](https://badge.fury.io/rb/sidekiq.png )](https://rubygems.org/gems/sidekiq) [![Code Climate ](https://codeclimate.com/github/mperham/sidekiq.png )](https://codeclimate.com/github/mperham/sidekiq) [![Build Status ](https://travis-ci.org/mperham/sidekiq.png )](https://travis-ci.org/mperham/sidekiq) [![Coverage Status ](https://coveralls.io/repos/mperham/sidekiq/badge.png?branch=master )](https://coveralls.io/r/mperham/sidekiq)
2013-03-11 21:40:11 -04:00
2012-08-07 16:01:34 -04:00
2013-06-26 00:55:51 -04:00
Simple, efficient background processing for Ruby.
2012-01-21 19:42:21 -05:00
2013-06-26 00:55:51 -04:00
Sidekiq uses threads to handle many jobs at the same time in the
2012-08-31 00:02:49 -04:00
same process. It does not require Rails but will integrate tightly with
2013-09-22 17:24:23 -04:00
Rails 3/4 to make background processing dead simple.
2012-04-05 22:20:24 -04:00
2012-03-26 09:26:05 -04:00
Sidekiq is compatible with Resque. It uses the exact same
2012-02-05 10:55:18 -05:00
message format as Resque so it can integrate into an existing Resque processing farm.
2012-01-21 19:42:21 -05:00
You can have Sidekiq and Resque run side-by-side at the same time and
2013-06-26 00:55:51 -04:00
use the Resque client to enqueue jobs in Redis to be processed by Sidekiq.
2012-01-21 19:42:21 -05:00
2012-05-13 23:50:25 -04:00
At the same time, Sidekiq uses multithreading so it is much more memory efficient than
2012-04-05 22:20:24 -04:00
Resque (which forks a new process for every job). You'll find that you might need
2014-03-09 17:59:55 -04:00
10 200MB resque processes to peg your CPU whereas one 300MB Sidekiq process will peg
2013-04-09 18:25:15 -04:00
the same CPU and perform the same amount of work.
2012-01-21 19:42:21 -05:00
Requirements
-----------------
2014-03-19 19:53:22 -04:00
I test with the latest MRI (2.1, 2.0) and JRuby versions (1.7). Other versions/VMs
2014-05-05 12:31:19 -04:00
are untested but might work fine. MRI 1.9 is no longer supported.
2013-09-22 17:24:23 -04:00
The last two major Rails releases (3.2 and 4.0) are officially supported, other
versions might work fine.
2012-01-21 19:42:21 -05:00
2013-05-29 07:55:00 -04:00
Redis 2.4 or greater is required.
2012-07-25 21:41:05 -04:00
2012-01-21 19:42:21 -05:00
Installation
-----------------
2012-06-26 20:52:06 -04:00
gem install sidekiq
2012-01-21 19:42:21 -05:00
2012-01-26 00:12:18 -05:00
Getting Started
2012-01-21 19:42:21 -05:00
-----------------
2013-04-01 01:32:13 -04:00
See the [sidekiq home page ](http://mperham.github.com/sidekiq ) for the simple 3-step process.
2013-03-16 18:31:06 -04:00
You can watch [Railscast #366 ](http://railscasts.com/episodes/366-sidekiq ) to see Sidekiq in action. If you do everything right, you should see this:
![Web UI ](https://github.com/mperham/sidekiq/raw/master/examples/web-ui.png )
2012-01-21 19:42:21 -05:00
2013-04-09 18:25:15 -04:00
Want to Upgrade?
2013-04-08 11:33:37 -04:00
-------------------
I also sell Sidekiq Pro, an extension to Sidekiq which provides more
features, a commercial-friendly license and allows you to support high
quality open source development all at the same time. Please see the
[Sidekiq Pro ](http://sidekiq.org/pro ) homepage for more detail.
2012-01-21 19:42:21 -05:00
2012-01-24 21:07:18 -05:00
More Information
-----------------
2013-11-30 14:56:28 -05:00
Please see the [sidekiq wiki ](https://github.com/mperham/sidekiq/wiki ) for the official documentation.
2012-03-06 13:20:06 -05:00
[#sidekiq on irc.freenode.net ](irc://irc.freenode.net/#sidekiq ) is dedicated to this project,
2013-11-30 14:56:28 -05:00
but bug reports or feature requests suggestions should still go through [issues on Github ](https://github.com/mperham/sidekiq/issues ). Release announcements are made to [@sidekiq ](https://twitter.com/sidekiq )
2012-01-24 21:07:18 -05:00
2012-06-19 15:26:36 -04:00
There's also a mailing list via [Librelist ](http://librelist.org ) that you can subscribe to by sending
2012-12-15 23:40:35 -05:00
an email to < sidekiq @ librelist . org > with a greeting in the body. To unsubscribe, send an email to < sidekiq-unsubscribe @ librelist . org > and that's it!
2012-06-19 15:26:36 -04:00
Once archiving begins, you'll be able to visit [the archives ](http://librelist.com/browser/sidekiq/ ) to see past threads.
2012-01-24 21:07:18 -05:00
2012-08-02 12:01:56 -04:00
Problems?
-----------------
**Please do not directly email any Sidekiq committers with questions or problems.** A community is best served when discussions are held in public.
2013-02-12 09:59:41 -05:00
If you have a problem, please review the [FAQ ](https://github.com/mperham/sidekiq/wiki/FAQ ) and [Troubleshooting ](https://github.com/mperham/sidekiq/wiki/Problems-and-Troubleshooting ) wiki pages. Searching the issues for your problem is also a good idea. If that doesn't help, feel free to email the Sidekiq mailing list or open a new issue.
2012-08-08 19:08:05 -04:00
The mailing list is the preferred place to ask questions on usage. If you are encountering what you think is a bug, please open an issue.
2012-08-02 12:01:56 -04:00
2014-04-18 22:59:44 -04:00
Thanks
-----------------
Sidekiq stays fast by using the [JProfiler java profiler ](http://www.ej-technologies.com/products/jprofiler/overview.html ) to find and fix
performance problems on JRuby. Unfortunately MRI does not have good profile tooling.
2012-01-24 22:44:57 -05:00
License
-----------------
2013-04-15 12:48:12 -04:00
Please see [LICENSE ](https://github.com/mperham/sidekiq/blob/master/LICENSE ) for licensing details.
2012-01-24 22:44:57 -05:00
2012-01-21 19:42:21 -05:00
Author
-----------------
2013-11-30 14:56:28 -05:00
Mike Perham, [@mperham ](https://twitter.com/mperham ) / [@sidekiq ](https://twitter.com/sidekiq ), [http://mikeperham.com ](http://mikeperham.com )