class Procrastinator::Scheduler::UpdateProxy
Provides a more natural syntax for rescheduling tasks
@see Scheduler#reschedule
Public Class Methods
new(queue, identifier:)
click to toggle source
# File lib/procrastinator/scheduler.rb, line 90 def initialize(queue, identifier:) @queue = queue @identifier = identifier.merge(queue: queue.name.to_sym) end
Public Instance Methods
to(run_at: nil, expire_at: nil)
click to toggle source
# File lib/procrastinator/scheduler.rb, line 95 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
Also aliased as: at