VimUnDoz7'}QR.QNn2$0,00+PEi_PC5_PC5_PCt$cache = Redis.new5_PC require 5_PC  5_PC YAML.load_file('config/')5_PC "YAML.load_file('config/redis.yml')5_ PC *config= YAML.load_file('config/redis.yml')5_ PC $cache = Redis.new()5_ +PC +config = YAML.load_file('config/redis.yml')5_ PC $cache = Redis.new(config[''])5_  PC  autoload5_  PC   autoload 5_  PC"  autoload5_PC# module Scheduler5_PC&  module Kronos5_PCy!$cache = Redis.new(config['url'])5_PCz 5_PC~( ENV['STORAGE']5_PC ENV['KHRONOS_STORAGE']5_ PC = PESw   5_=?> PES~  autoload :Scheduler, 'kh'5_>@? PES ) autoload :Scheduler, 'khronos/schedule'5_?A@  vPES ( autoload :Schedule, 'khronos/schedule'5_@CA   PES & autoload :Server, 'khronos/server' ' autoload :Storage, 'khronos/storage'5_ADBC   PET  5_CED   PET ) autoload :Scheduler, 'khronos/schedule'5_DFE   PET $ autoload :Task, 'khronos/schedule'5_EIF   PET ) autoload :Task, 'khronos/schedule'5_FJHI   PEX % autoload :Task, 'khronos/task'5_IKJ   PEX ' autoload :Runner, 'khronos/task'5_JLK   PEX & autoload :Runner, 'khronos/task'5_KML   PEX % autoload :Runner, 'khronos/task'5_LNM  PEXl5_MON  PEXnKhronos5_NPO  PEXn5_OQP   PEXq   5_PRQ  PEX|5_QSR  PEX5_RTSVPEX def initialize end5_SUTVPEX 5_TVUVPEX5_UWV VPEX def run5_VXWVPEX def run! end5_WYXVPEX 5_XZYVPEX5_Y[ZVPEX5_Z\[VPEX5_[]\VPEY25_\^] 'VPEY4 ' autoload :Runner, 'khronos/runner'5_]_^VPEY8 attr_reader5_^`_VPEY9 5__a`VPEY=  def initialize5_`baVPEY?Khronos5_acbVPEYBKhronos::Scheduler.new5_bdc"VPEYDscheduler.add_observer("scheduler = Khronos::Scheduler.new5_cedVPEYVscheduler.add_observer()5_dfeVPEYXscheduler.add_observer(Khronos)5_egf 'VPEY\ ) def initialize( ' autoload :Runner, 'khronos/runner'5_fhgVPEYa def initialize( )5_gihVPEYb def initialize()5_hjiVPEYe def initialize()5_ikjVPEYf5_jlkVPEYk 5_kmlVPEYo @scheduler.add_observer5_lnmVPEYu"scheduler = Khronos::Scheduler.new5_monVPEYvscheduler = Khronos.new5_npoVPEYyscheduler.add_observer(Khronos)5_oqpVPEY} 5_prqVPEY @runner = Runner.new5_qsrVPEY5_rtsVPEY @scheduler.add_observer()5_sutVPEY5_tvuVPEY 5_uwvVPEY def run5_vxwVPEY5_wyxVPEY def loop!5_xzy VPEY khronos.run5_y|zVPEY @runner = Runner.new5_z}{|VPEY5_|~}VPEY$ @scheduler.add_observer(@runner)5_}~VPEY5_~VPEY 5_VPEY5_VPEY5_VPEY#5_VPEY$5_VPEY&5_VPEY 5_ VPEY puts "Tick"5_VPEY9 5_ VPEZ= module Khronos5_ VPEZ<B  class Khronos5_VPEZ@C    5_ VPEZC  5_VPEZDD 5_VPEZGI  autoload :Thread5_ VPEZOL" def sl    5_  VPEZU @scheduler = Scheduler.new5_VPEZUO"5_  VPEZWP5_VPEZYQ def initialize end5_VPEZ[ @runner = Runner.new$ @scheduler.add_observer(@runner) loop do puts "Tick..." sleep(1) end5_VPEZ\5_VPEZ^R def run! end5_VPEZ`khronos = Khronos.new5_VPEZbkhronos = Khronos.run!5_VPEZbV khronos.run!5_ (VPEZtb ) autoload :Scheduler, 'khronos/schedule'5_VPEZc 5_VPEZ @scheduler = Scheduler.new @runner = Runner.new$ @scheduler.add_observer(@runner) loop do puts "Tick..." sleep(1) end5_VPEZd5_VPEZ end sleep(1) puts "Tick..." loop do$ @scheduler.add_observer(@runner) @runner = Runner.new @scheduler = Scheduler.new5_VPEZf5_VPEZg Thread.new do5_VPEZ 5_VPEZ5_VPEZi5_VPEZ5_VPEZr5_VPE[s  5_VPE[t t.join5_VPE[{5_VPE[ sleep(1)5_VPE[ #t.join5_VPE[ puts "Tick..."5_VPE[5_VPE[ 5_VPE[ 5_VPE[ 5_VPE[  target_time = 5.days.5_VPE\  target_time = 2.minute5_VPE\  target_time = 25_ VPE\ !  5_VPE\! Time.now == target_time5_"VPE\# "!" if Time.now == target_time5_ VPE\ puts $ #5_VPE\% puts "Thread started..."5_VPE\& %5_  VPE\' &5_!VPE\'5_"VPE\) (5_%#VPE\%'* %')5_& #VPE\%'* t.joins5_&#VPE]%& t.join5_#VPE] puts "Target time..."5_"VPE] puts "Hey!"5_ VPE] puts "Hey?"5_VPE]5_ VPE^?% $5_VPE^N sleep(1)5_VPE^N$5_ VPE^P #puts "Tick..."5_VPE^P sleep(1)5_VPE^P$5_vPE^~%" if Time.now == target_time5_vPE^%! if Time.now < target_time5_vPE^%" if Time.now <= target_time5_vPEaM' target_time = 20.seconds.from_nowD puts "Thread started... Target time => #{target_time.inspect}"5_ 'vPEa^ "' autoload :Runner, 'khronos/runner'5_vPEab # autoload :Controller5_   PEaj #' autoload :Server, 'khronos/server'* autoload :Scheduler, 'khronos/scheduler'' autoload :Runner, 'khronos/runner' #( autoload :Storage, 'khronos/storage'5_ VPEaq def self.run! t = Thread.new do @scheduler = Scheduler.new @runner = Runner.new& @scheduler.add_observer(@runner) loop do! if Time.now > target_time puts "It's now!!!!!!!" end puts "Tick..." sleep(1) end end t.run end5_VPEacontroo5_#VPEa5_VPEa Controller.5_ VPEa controller.5_VPEa Khronos.run!5_VPEb 5_VPEbend5_VPEbcontroller.run!5_VPEb5_VPEbcontroller.run!5_VPEb5_0VPEb@NENV['KHRONOS_STORAGE'] = YAML.load_file('config/storage.yml')[ENV['RACK_ENV']]5_0VPEbC%MENV['KHRONOS_STORAGE'] = YAML.load_file('config/config.yml')[ENV['RACK_ENV']]5_ VPEbq) 5_!VPEc." autoload :Config, 'khronos/'5_ VPEc controller.run!5_ VPEc3 controller.leep()5_VPEcRENV['KHRONOS_STORAGE'] = YAML.load_file('config/environment.yml')[ENV['RACK_ENV']]5_VPEc5_VPEcconfig 5_ VPEc config = p5_2VPEc92config = YAML.load_file('config/environment.yml')p5_vPEd> *ENV['KHRONOS_STORAGE'] = [ENV['RACK_ENV']]5_0vPEdA 0ENV['KHRONOS_STORAGE'] = config[ENV['RACK_ENV']]5_vPEd controller.loop()5_vPEdB controller.loop(config)5_vPEd F" controller.loop(config['sleep'])5_vPEdgI% controller.loop(config['interval'])5_vPEd 5_vPEd puts 5_vPEdK puts config['interval']5_vPEd ;ENV['KHRONOS_STORAGE'] = config[ENV['RACK_ENV']]['storage']5_0vPEdR1config = YAML.load_file('config/environment.yml')5_ vPEda( autoload :Config, 'khronos/config'5_  vPEe g! puts config['interval'].inspect5_    vPEe$5_   vPEe'lController.start!5_  VPEe+n Thread.new do& controller.loop!(config['interval'])end.run5_  VPEe?p) #autoload :Config, 'khronos/config'5_VPEeVqKhronos::Config.load!(5_VPEe]Bconfig = YAML.load_file('config/environment.yml')[ENV['RACK_ENV']]5_VPEe^Khronos::Config.load!()5_.VPEe_/Khronos::Config.load!('config/environment.yml')5_VPEea*config = YAML.load_file()[ENV['RACK_ENV']]5_0VPEec1Khronos::Config.load!('config/environment.yml', )5_ VPEe*ENV['KHRONOS_STORAGE'] = config['storage']5_VPEerequire 'yaml'5_VPEe@Khronos::Config.load!('config/environment.yml', ENV['RACK_ENV'])5_VPEg#config = YAML.load_file()[]5_ VPEg< ( autoload :Config, 'khronos/config'5_  VPEg=5_" VPEg? 5_ #!"   VPEgF + autoload :Scheduler, 'khronos/scheduler'( autoload :Runner, 'khronos/runner'5_"$#   VPEgG 5_#&$   VPEgG 5_$'%& VPEgJ 5_&(' VPEgP + autoload :Scheduler, 'khronos/scheduler'( autoload :Runner, 'khronos/runner'5_')(   VPEgQ 5_(*) VPEgS 5_)+*VPEi5_*,+VPEi5_+-,VPEi5_,.-$VPEi(controller = Khronos::Controller.new( )5_-/.&VPEiqcontroller = Khronos::Controller.new( Khronos::Config.instance.load!('config/environment.yml', ENV['RACK_ENV']) )5_.0/VPEi5_/0VPEi5_$&% VPEgI 5_ "! VPEgA 5_VPEg"5_VPEfKhronos::Controller.new5_VPEej 5_VPEeh{ 5_VPEeg 5_   vPEec = Khronos::Controller.new5_ vPEeY5_vPEd +ENV['KHRONOS_STORAGE'] = config]['storage']5_vPEd +ENV['KHRONOS_STORAGE'] = config]['storage']5_0vPEdAconfig = YAML.load_file('config/environment.yml')[ENV['RACK_ENV']5_ vPEd ,ENV['KHRONOS_STORAGE'] = config[]['storage']5_vPEd 0ENVconfig['KHRONOS_STORAGE'] = [ENV['RACK_ENV']]5_ VPEc2config = pYAML.load_file('config/environment.yml')5_VPEbgENV['KHRONOS_STORAGE'] = 5_VPEbi#ENV['KHRONOS_STORAGE'] =5_VPEbi"ENV['KHRONOS_STORAGE'] =5_VPEbg5_VPEbcontroller.run!5_VPEam !5_VPE] puts "Tick..."5_!VPE]5_ VPE] 5_ VPE\#5_VPE\  target_time 5_VPE[5_VPE[x t.join5_VPEZ5_ VPEZlX ( autoload :Schedule, 'khronos/schedule'5_ VPEZn ) autoload :Schedule, 'khronos/schedule'5_z|{VPEY @runner = Runner.new5_FGIH &  PEU( + autoload :Server, 'khronos/server/app'5_FHG   PEU$ $ autoload :App, 'khronos/server'5_ACB   PETw 5_13;2  v PD"  puts 5_243  v PD" 1ENV['KHRONOS_STORAGE'] = [ENV['RACK_ENV']]['url']5_354  v PD" 5_465  v PD" $YAML.load_file('config/storage.yml')5_576  v PD" -config = YAML.load_file('config/storage.yml')5_687  v PD" 7ENV['KHRONOS_STORAGE'] = config[ENV['RACK_ENV']]['url']5_798  v PD" puts5_8:9  v PD" puts config.inspect5_9:  v PD# 5_PCk5