class SideJob::Job
Wrapper for a job which may not be in progress unlike SideJob::Worker
. @see SideJob::JobMethods
Public Class Methods
new(alias_or_id)
click to toggle source
@param alias_or_id [String, Integer] Job
alias or id
# File lib/sidejob/job.rb, line 478 def initialize(alias_or_id) @id = (SideJob.redis.hget('jobs:aliases', alias_or_id.to_s) || alias_or_id).to_i check_exists end
Public Instance Methods
run_inline(errors: true, queue: true, args: [])
click to toggle source
Runs a single job once. This method only works for jobs with no child jobs. @param errors [Boolean] Whether to propagate errors that occur in jobs (default true) @param queue [Boolean] Whether to force the job to be queued (default true) @param args [Array] Args to pass to the worker’s perform method (default none)
# File lib/sidejob/testing.rb, line 31 def run_inline(errors: true, queue: true, args: []) self.status = 'queued' if queue worker_info = JSON.parse(SideJob.redis.get("#{redis_key}:worker")) worker = worker_info['class'].constantize.new worker.jid = id SideJob::ServerMiddleware.raise_errors = errors SideJob::ServerMiddleware.new.call(worker, {}, worker_info['queue']) do worker.perform(*args) end ensure SideJob::ServerMiddleware.raise_errors = false end