Module: Leveret::Job

Defined in:
lib/leveret/job.rb

Overview

Include this module in your job to create a leveret compatible job. Once included, simply override #perform to do your jobs action.

To set a different queue name call #queue_name in your class, to set the default priority call #priority in your class.

To queue a job simply call #enqueue on the class with the parameters to be passed. These params will be serialized as JSON in the interim, so ensure that your params are json-safe.

Examples:

Job Class

class MyJob
  include Leveret::Job

  queue_name 'my_custom_queue' # omit for default
  priority :high # omit for default

  def perform
    File.open('/tmp/leveret-test-file.txt', 'a+') do |f|
      f.puts params[:test_text]
    end

    sleep 5 # Job takes a long time
  end
end

Queueing a Job

# With options defined in class
MyJob.enqueue(test_text: "Hi there, please write this text to the file")

# Set the job priority at queue time
MyJob.enqueue(test_text: "Hi there, please write this important text to the file", priority: :high)

# Place in a different queue to the one defined in the class
MyJob.enqueue(test_text: "Hi there, please write this different text to the file", queue_name: 'other_queue')

Defined Under Namespace

Modules: ClassMethods, InstanceMethods Classes: DelayJob, RejectJob, RequeueJob

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object



158
159
160
161
# File 'lib/leveret/job.rb', line 158

def self.included(base)
  base.extend ClassMethods
  base.include InstanceMethods
end