module Leveret::Job
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.
@example 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
@example 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')
Public Class Methods
included(base)
click to toggle source
# File lib/leveret/job.rb, line 158 def self.included(base) base.extend ClassMethods base.include InstanceMethods end