Class: PerfectSched::Backend

Inherits:
Object
  • Object
show all
Defined in:
lib/perfectsched/backend.rb

Direct Known Subclasses

NullBackend, RDBBackend, SimpleDBBackend

Instance Method Summary collapse

Constructor Details

#initializeBackend

Returns a new instance of Backend.



19
20
21
# File 'lib/perfectsched/backend.rb', line 19

def initialize
  @croncalc = CronCalc.new
end

Instance Method Details

#acquire(timeout, now = Time.now.to_i) ⇒ Object

> token, task



28
29
# File 'lib/perfectsched/backend.rb', line 28

def acquire(timeout, now=Time.now.to_i)
end

#add(id, cron, delay, data, start_time) ⇒ Object

> true (success) or nil (already exists)



36
37
38
39
40
# File 'lib/perfectsched/backend.rb', line 36

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

#add_checked(id, cron, delay, data, next_time, timeout) ⇒ Object

> true (success) or nil (already exists)



43
44
# File 'lib/perfectsched/backend.rb', line 43

def add_checked(id, cron, delay, data, next_time, timeout)
end

#closeObject



78
79
# File 'lib/perfectsched/backend.rb', line 78

def close
end

#delete(id) ⇒ Object

> true (success) or false (not found, canceled or finished)



47
48
# File 'lib/perfectsched/backend.rb', line 47

def delete(id)
end

#finish(token, next_time) ⇒ Object

> true (success) or false (canceled)



32
33
# File 'lib/perfectsched/backend.rb', line 32

def finish(token, next_time)
end

#list(&block) ⇒ Object

> list {|id,cron,delay,data,next_time,timeout| … }



24
25
# File 'lib/perfectsched/backend.rb', line 24

def list(&block)
end

#modify(id, cron, delay, data) ⇒ Object

> true (success) or false (not found)



51
52
53
54
55
# File 'lib/perfectsched/backend.rb', line 51

def modify(id, cron, delay, data)
  cron = cron.strip
  @croncalc.next_time(cron, 0)
  modify_checked(id, cron, delay, data)
end

#modify_checked(id, cron, delay, data) ⇒ Object



57
58
# File 'lib/perfectsched/backend.rb', line 57

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

#modify_data(id, data) ⇒ Object

> true (success) or false (not found)



71
72
73
# File 'lib/perfectsched/backend.rb', line 71

def modify_data(id, data)
  modify_data_checked(id, data)
end

#modify_data_checked(id, data) ⇒ Object



75
76
# File 'lib/perfectsched/backend.rb', line 75

def modify_data_checked(id, data)
end

#modify_sched(id, cron, delay) ⇒ Object

> true (success) or false (not found)



61
62
63
64
65
# File 'lib/perfectsched/backend.rb', line 61

def modify_sched(id, cron, delay)
  cron = cron.strip
  @croncalc.next_time(cron, 0)
  modify_sched_checked(id, cron, delay)
end

#modify_sched_checked(id, cron, delay) ⇒ Object



67
68
# File 'lib/perfectsched/backend.rb', line 67

def modify_sched_checked(id, cron, delay)
end