class Blender::Timer
Timer
class provides a simple dsl for running blender jobs periodically. It uses Rufus::Scheduler for scheduling jobs
Public Class Methods
new()
click to toggle source
# File lib/blender/timer.rb, line 25 def initialize @scheduled_jobs = [] end
Public Instance Methods
join()
click to toggle source
# File lib/blender/timer.rb, line 35 def join scheduler = Rufus::Scheduler.new @scheduled_jobs.each do |job| case job.schedule.first when :every scheduler.every(job.schedule[1]) do job.run end when :cron scheduler.cron(job.schedule[1]) do job.run end else raise UnsupportedFeature, "Unsupported scheduling: '#{job.schedule.first}'" end end scheduler.join end
schedule(name, &block)
click to toggle source
# File lib/blender/timer.rb, line 29 def schedule(name, &block) job = Blender::ScheduledJob.new(name) job.instance_eval(&block) @scheduled_jobs << job end