Files
crono/lib/crono/job.rb
Dzmitry Plashchynski 007989fa2c Add Job#description
2015-03-05 14:03:07 +02:00

26 lines
529 B
Ruby

module Crono
class Job
attr_accessor :performer
attr_accessor :period
attr_accessor :last_performed_at
def initialize(performer, period)
self.performer, self.period = performer, period
end
def next
period.next(since: last_performed_at)
end
def description
"Perform #{performer} #{period.description}"
end
def perform
Crono.logger.info "Perform #{performer}"
self.last_performed_at = Time.now
Thread.new { performer.new.perform }
end
end
end