Sha256: b829d1557910266d17c4033b255c3aba532224dc455a0b104e571497bbe026d4

Contents?: true

Size: 1.59 KB

Versions: 7

Compression:

Stored size: 1.59 KB

Contents

module PerfectSched


class Task
  def initialize(id, time, cron, delay, data)
    @id = id
    @time = time
    @cron = cron
    @delay = delay
    @data = data
  end

  attr_reader :id, :time, :cron, :delay, :data
end


class Backend
  def initialize
    @croncalc = CronCalc.new
  end

  # => list {|id,cron,delay,data,next_time,timeout| ... }
  def list(&block)
  end

  # => token, task
  def acquire(timeout, now=Time.now.to_i)
  end

  # => true (success) or false (canceled)
  def finish(token, next_time)
  end

  # => true (success) or nil (already exists)
  def add(id, cron, delay, data, start_time)
    first_time = @croncalc.next_time(cron, start_time.to_i)
    timeout = first_time + delay
    add_checked(id, cron, delay, data, first_time, timeout)
  end

  # => true (success) or nil (already exists)
  def add_checked(id, cron, delay, data, next_time, timeout)
  end

  # => true (success) or false (not found, canceled or finished)
  def delete(id)
  end

  # => true (success) or false (not found)
  def modify(id, cron, delay, data)
    cron = cron.strip
    @croncalc.next_time(cron, 0)
    modify_checked(id, cron, delay, data)
  end

  def modify_checked(id, cron, delay, data)
  end

  # => true (success) or false (not found)
  def modify_sched(id, cron, delay)
    cron = cron.strip
    @croncalc.next_time(cron, 0)
    modify_sched_checked(id, cron, delay)
  end

  def modify_sched_checked(id, cron, delay)
  end

  # => true (success) or false (not found)
  def modify_data(id, data)
    modify_data_checked(id, data)
  end

  def modify_data_checked(id, data)
  end

  def close
  end
end


end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
perfectsched-0.7.6 lib/perfectsched/backend.rb
perfectsched-0.7.5 lib/perfectsched/backend.rb
perfectsched-0.7.4 lib/perfectsched/backend.rb
perfectsched-0.7.3 lib/perfectsched/backend.rb
perfectsched-0.7.2 lib/perfectsched/backend.rb
perfectsched-0.7.1 lib/perfectsched/backend.rb
perfectsched-0.7.0 lib/perfectsched/backend.rb