Class: BackgroundTaskJob
- Inherits:
-
Struct
- Object
- Struct
- BackgroundTaskJob
- Defined in:
- lib/engine/app/lib/jobs/background_task_job.rb
Instance Attribute Summary collapse
-
#task ⇒ Object
Returns the value of attribute task.
Class Method Summary collapse
Instance Method Summary collapse
- #add_to_queue ⇒ Object
- #after(job) ⇒ Object
- #clear_queue ⇒ Object
- #perform ⇒ Object
- #queue_name ⇒ Object
- #refresh_data ⇒ Object
- #reset_queue ⇒ Object
- #run_at ⇒ Object
Instance Attribute Details
#task ⇒ Object
Returns the value of attribute 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_queues ⇒ Object
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_queue ⇒ Object
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_queue ⇒ Object
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 |
#perform ⇒ Object
25 26 27 |
# File 'lib/engine/app/lib/jobs/background_task_job.rb', line 25 def perform task.perform end |
#queue_name ⇒ Object
2 3 4 |
# File 'lib/engine/app/lib/jobs/background_task_job.rb', line 2 def queue_name "task_#{task.id}" end |
#refresh_data ⇒ Object
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_queue ⇒ Object
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_at ⇒ Object
6 7 8 |
# File 'lib/engine/app/lib/jobs/background_task_job.rb', line 6 def run_at task.every.seconds.from_now end |