Class: BackgroundTaskJob

Inherits:
Struct
  • Object
show all
Defined in:
lib/engine/app/lib/jobs/background_task_job.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#taskObject

Returns the value of attribute task

Returns:

  • (Object)

    the current value of task



1
2
3
# File 'lib/engine/app/lib/jobs/background_task_job.rb', line 1

def task
  @task
end

Class Method Details

.reset_all_queuesObject



38
39
40
41
# File 'lib/engine/app/lib/jobs/background_task_job.rb', line 38

def self.reset_all_queues
  Delayed::Job.where("queue like 'task_%'").destroy_all
  Task.all.each{|task| new(task).add_to_queue}
end

Instance Method Details

#add_to_queueObject



14
15
16
17
18
# File 'lib/engine/app/lib/jobs/background_task_job.rb', line 14

def add_to_queue
  if task.active?
    Delayed::Job.enqueue(self, queue: queue_name, run_at: run_at)
  end
end

#after(job) ⇒ Object



33
34
35
36
# File 'lib/engine/app/lib/jobs/background_task_job.rb', line 33

def after(job)
  refresh_data
  add_to_queue if task
end

#clear_queueObject



10
11
12
# File 'lib/engine/app/lib/jobs/background_task_job.rb', line 10

def clear_queue
  Delayed::Job.where(queue: queue_name).destroy_all
end

#performObject



25
26
27
# File 'lib/engine/app/lib/jobs/background_task_job.rb', line 25

def perform
  task.perform
end

#queue_nameObject



2
3
4
# File 'lib/engine/app/lib/jobs/background_task_job.rb', line 2

def queue_name
  "task_#{task.id}"
end

#refresh_dataObject



29
30
31
# File 'lib/engine/app/lib/jobs/background_task_job.rb', line 29

def refresh_data
  self.task = Task.where(id: task.id).first
end

#reset_queueObject



20
21
22
23
# File 'lib/engine/app/lib/jobs/background_task_job.rb', line 20

def reset_queue
  clear_queue
  add_to_queue
end

#run_atObject



6
7
8
# File 'lib/engine/app/lib/jobs/background_task_job.rb', line 6

def run_at
  task.every.seconds.from_now
end