diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000000..84d40809f7 --- /dev/null +++ b/README.md @@ -0,0 +1,81 @@ += Active Job -- Make work happen later + +Active Job is a framework for declaring jobs and making them run on a variety +of queueing backends. These jobs can be everything from regularly scheduled +clean-ups, billing charges, or mailings. Anything that can be chopped up into +small units of work and run in parallel, really. + +It also serves as the backend for ActionMailer's #deliver_later functionality +that makes it easy to turn any mailing into a job for running later. That's +one of the most common jobs in a modern web application: Sending emails outside +of the request-response cycle, so the user doesn't have to wait on it. + + +== GlobalID support + +Active Job supports GlobalID serialization for parameters. This makes it possible +to pass live Active Record objects to your job instead of class/id pairs, which +you then have to manually deserialize. Before, jobs would look like this: + +```ruby +class TrashableCleanupJob + def self.perfom(trashable_class, trashable_id, depth) + trashable = trashable_class.constantize.find(trashable_id) + trashable.cleanup(depth) + end +end +``` + +Now you can simply do: + +```ruby +class TrashableCleanupJob + def self.perfom(trashable, depth) + trashable.cleanup(depth) + end +end +``` + +This works with any class that mixes in ActiveModel::GlobalIdentification, which +by default has been mixed into Active Record classes. + + +== Supported queueing systems + +We currently have adapters for: + +* Resque 1.x +* Sidekiq +* Sucker Punch +* Delayed Job + +We would like to have adapters for: + +* beanstalkd +* rabbitmq + + +== Under development as a gem, targeted for Rails inclusion + +Active Job is currently being developed in a separate repository until it's +ready to be merged in with Rails. The current plan is to have Active Job +be part of the Rails 4.2 release, but plans may change depending on when +this framework stabilizes and feels ready. + + +== Download and installation + +The latest version of Active Job can be installed with RubyGems: + + % [sudo] gem install activejob + +Source code can be downloaded as part of the Rails project on GitHub + +* https://github.com/rails/activejob + + +== License + +Active Job is released under the MIT license: + +* http://www.opensource.org/licenses/MIT |