Sha256: ff48cb35ecfad5984aee384787f3ccb907eef804b1a06d0c490c7116df7a288e
Contents?: true
Size: 722 Bytes
Versions: 3
Compression:
Stored size: 722 Bytes
Contents
class BackgroundTaskJob < Struct.new(:task) def queue_name "task_#{task.id}" end def run_at task.every.seconds.from_now end def clear_queue Delayed::Job.where(queue: queue_name).destroy_all end def add_to_queue if task.active? Delayed::Job.enqueue(self, queue: queue_name, run_at: run_at) end end def reset_queue clear_queue add_to_queue end def perform task.perform end def refresh_data self.task = Task.where(id: task.id).first end def after(job) refresh_data add_to_queue if task end def self.reset_all_queues Delayed::Job.where("queue like 'task_%'").destroy_all Task.all.each{|task| new(task).add_to_queue} end end
Version data entries
3 entries across 3 versions & 1 rubygems