module Resque::Plugins::Approve::ClassMethods
The class methods added to the job class that is being enqueued to determine if it should be shunted to the list of pending jobs, or enqueued.
Public Instance Methods
approve()
click to toggle source
# File lib/resque/plugins/approve.rb, line 67 def approve Resque::Plugins::Approve.approve(default_queue_name) end
approve_num(num_approve)
click to toggle source
# File lib/resque/plugins/approve.rb, line 75 def approve_num(num_approve) Resque::Plugins::Approve.approve_num(num_approve, default_queue_name) end
approve_one()
click to toggle source
# File lib/resque/plugins/approve.rb, line 71 def approve_one Resque::Plugins::Approve.approve_one(default_queue_name) end
auto_delete_approval_key()
click to toggle source
# File lib/resque/plugins/approve.rb, line 47 def auto_delete_approval_key @auto_delete_approval_key end
auto_delete_approval_key=(value)
click to toggle source
# File lib/resque/plugins/approve.rb, line 43 def auto_delete_approval_key=(value) @auto_delete_approval_key = value end
before_enqueue_approve(*args)
click to toggle source
Check if the job needs to be approved, and if so, do not enqueue it.
# File lib/resque/plugins/approve.rb, line 110 def before_enqueue_approve(*args) job = PendingJob.new(SecureRandom.uuid, class_name: name, args: args) if job.requires_approval? return false if job.compressable? && !job.compressed?(args) ApprovalKeyList.new.add_job(job) false else job.max_jobs_perform_args(args) true end end
before_perform_approve(*args)
click to toggle source
It is possible to run a job immediately using `Resque.push`. This will bypass the queue and run the job immediately. This will prevent such a job from enqueuing, and instead pause it for approval
The primary reason for this is to prevent the job from receiving the approval parameters it is not supposed to have when actually run/enqueued.
NOTE: This does not validate running counts.
# File lib/resque/plugins/approve.rb, line 94 def before_perform_approve(*args) # Check if the job needs to be approved, and if so, do not enqueue it. job = PendingJob.new(SecureRandom.uuid, class_name: name, args: args) if job.approval_keys? && !job.max_active_jobs? ApprovalKeyList.new.add_job(job) raise Resque::Job::DontPerform, "The job has not been approved yet." else job.max_jobs_perform_args(args) true end end
default_queue_name()
click to toggle source
# File lib/resque/plugins/approve.rb, line 63 def default_queue_name @default_queue_name || Resque.queue_from_class(self) end
default_queue_name=(value)
click to toggle source
# File lib/resque/plugins/approve.rb, line 59 def default_queue_name=(value) @default_queue_name = value end
max_active_jobs()
click to toggle source
# File lib/resque/plugins/approve.rb, line 55 def max_active_jobs @max_active_jobs end
max_active_jobs=(value)
click to toggle source
# File lib/resque/plugins/approve.rb, line 51 def max_active_jobs=(value) @max_active_jobs = value end
remove()
click to toggle source
# File lib/resque/plugins/approve.rb, line 79 def remove Resque::Plugins::Approve.remove(default_queue_name) end
remove_one()
click to toggle source
# File lib/resque/plugins/approve.rb, line 83 def remove_one Resque::Plugins::Approve.remove_one(default_queue_name) end