module SidekiqScheduler::Worker::ClassMethods

def perform_at(timestamp, *args)

def perform_at(timestamp, *args)
  jobs << { 'class' => self.name, 'timestamp' => timestamp.to_i, 'args' => args }
  true
end

def perform_in(seconds_from_now, *args)

def perform_in(seconds_from_now, *args)
  timestamp = Time.now + seconds_from_now
  jobs << { 'class' => self.name, 'timestamp' => timestamp.to_i, 'args' => args }
end

def remove_delayed(*args)

def remove_delayed(*args)
  old_jobcount = jobs.size
  jobs.reject! { |job| job["class"] == self.name && job["args"] == args }
  old_jobcount - jobs.size
end

def remove_delayed_from_timestamp(timestamp, *args)

def remove_delayed_from_timestamp(timestamp, *args)
  old_jobcount = jobs.size
  jobs.reject! { |job| job["class"] == self.name && job["timestamp"] == timestamp.to_i && job["args"] == args }
  old_jobcount - jobs.size
end