Sha256: 02c9adbb86c83887861c2a0135569dfa2b0f0c44a02e26a3f499cfa90c083f54
Contents?: true
Size: 1.2 KB
Versions: 2
Compression:
Stored size: 1.2 KB
Contents
module Coupler class Scheduler include Singleton def initialize super @mutex = Mutex.new end def schedule_transform_job(resource) Models::Job.create({ :name => "transform", :resource => resource, :status => "scheduled" }) end def schedule_run_scenario_job(scenario) Models::Job.create({ :name => "run_scenario", :scenario => scenario, :status => "scheduled" }) end def schedule_import_job(import) Models::Job.create({ :name => "import", :import => import, :status => "scheduled" }) end def run_jobs @mutex.synchronize do count = Models::Job.filter(:status => 'running').count if count == 0 job = Models::Job.filter(:status => 'scheduled').order(:created_at).first Thread.new(job) { |j| j.execute } if job end end end def start if !is_started? @loop = Thread.new do loop do sleep 10 run_jobs end end end end def shutdown @loop.exit @loop = nil end def is_started? !@loop.nil? end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
coupler-0.0.9-java | lib/coupler/scheduler.rb |
coupler-0.0.8-java | lib/coupler/scheduler.rb |