aboutsummaryrefslogtreecommitdiffstats
path: root/activejob/lib/active_job/base.rb
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2014-09-26 11:10:06 -0600
committermo khan <mo@mokhan.ca>2014-10-02 10:57:30 -0600
commitbc6421c9eff09fee31d4947d2cc6ddc580314de0 (patch)
treeb60143567122b7b368886baa916df38d1a23da10 /activejob/lib/active_job/base.rb
parent7b740f31cc6f88fe20a51eb7da1468082e6fdb5a (diff)
downloadrails-bc6421c9eff09fee31d4947d2cc6ddc580314de0.tar.gz
rails-bc6421c9eff09fee31d4947d2cc6ddc580314de0.tar.bz2
rails-bc6421c9eff09fee31d4947d2cc6ddc580314de0.zip
Add documentation on Active Job.
This adds documentation for the Active Job API. It includes documentation on how to configure the queue_adapter, and how to create new jobs. It adds links to the various other sections of the Active Job documentation.
Diffstat (limited to 'activejob/lib/active_job/base.rb')
-rw-r--r--activejob/lib/active_job/base.rb43
1 files changed, 42 insertions, 1 deletions
diff --git a/activejob/lib/active_job/base.rb b/activejob/lib/active_job/base.rb
index a3bec1f827..8f4b37222a 100644
--- a/activejob/lib/active_job/base.rb
+++ b/activejob/lib/active_job/base.rb
@@ -6,7 +6,48 @@ require 'active_job/execution'
require 'active_job/callbacks'
require 'active_job/logging'
-module ActiveJob
+module ActiveJob #:nodoc:
+ # = Active Job
+ #
+ # Active job objects can be configured to work with different backend
+ # queuing frameworks. To specify a queue adapter to use:
+ #
+ # ActiveJob::Base.queue_adapter = :inline
+ #
+ # A list of supported adapters can be found in QueueAdapters.
+ #
+ # Active job objects can be defined by creating a class that inherits
+ # from the ActiveJob::Base class. The only necessary method to
+ # implement is the "perform" method.
+ #
+ # To define an Active Job object:
+ #
+ # class ProcessPhotoJob < ActiveJob::Base
+ # def perform(photo)
+ # photo.watermark!('Rails')
+ # photo.rotate!(90.degrees)
+ # photo.resize_to_fit!(300, 300)
+ # photo.upload!
+ # end
+ # end
+ #
+ # Records that are passed in are serialized/deserialized using Global
+ # Id. More information can be found in Arguments.
+ #
+ # To queue a job to be processed asynchronously immediately:
+ #
+ # ProcessPhotoJob.perform_later(photo)
+ #
+ # To queue a job to be processed at some point in the future:
+ #
+ # ProcessPhotoJob.set(wait_until: Date.tomorrow.noon).perform_later(photo)
+ #
+ # More information can be found in ActiveJob::Core::ClassMethods#set
+ #
+ # == Exceptions
+ #
+ # * DeserializationError - Error class for deserialization errors.
+ # * SerializationError - Error class for serialization errors.
class Base
include Core
include QueueAdapter