Class: Procrastinator::Scheduler::UpdateProxy
- Inherits:
-
Object
- Object
- Procrastinator::Scheduler::UpdateProxy
- Defined in:
- lib/procrastinator/scheduler.rb
Overview
Provides a more natural syntax for rescheduling tasks
Instance Method Summary collapse
-
#initialize(queue, identifier:) ⇒ UpdateProxy
constructor
A new instance of UpdateProxy.
- #to(run_at: nil, expire_at: nil) ⇒ Object (also: #at)
Constructor Details
#initialize(queue, identifier:) ⇒ UpdateProxy
89 90 91 92 |
# File 'lib/procrastinator/scheduler.rb', line 89 def initialize(queue, identifier:) @queue = queue @identifier = identifier end |
Instance Method Details
#to(run_at: nil, expire_at: nil) ⇒ Object Also known as: at
94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/procrastinator/scheduler.rb', line 94 def to(run_at: nil, expire_at: nil) task = @queue.fetch_task(@identifier) raise ArgumentError, 'you must provide at least :run_at or :expire_at' if run_at.nil? && expire_at.nil? task.reschedule(expire_at: expire_at) if expire_at task.reschedule(run_at: run_at) if run_at new_data = task.to_h new_data.delete(:queue) new_data.delete(:data) @queue.update(new_data.delete(:id), new_data) end |