Sha256: d7eb8cc0e8d73c0b9a21ae6ac7597c49de2edef2487a0e45325a98ace3448567
Contents?: true
Size: 1.19 KB
Versions: 1
Compression:
Stored size: 1.19 KB
Contents
require 'rest-client' require 'json' require 'girl_friday' module Khronos module Server class Runner < GirlFriday::WorkQueue attr_reader :queue def initialize(*args) @queue = self super(*args) do |schedule| self.process(schedule) end end def enqueue(schedule) puts "Khronos::Server::Runner#enqueue => #{schedule.inspect}" @queue.push(schedule.to_json) end def process(json) schedule = JSON.parse(json) puts "Khronos::Server::Runner#process => #{schedule.inspect}" if (url = schedule['task_url']) begin response = RestClient.get(url) puts "Callback: success. response length: #{response.length.inspect}" rescue Exception => e puts "Callback: error. (#{e.inspect})" end calculate_recurrency!(schedule) end end def calculate_recurrency!(schedule) url = "http://#{Config.instance.scheduler['host']}" url += ":#{Config.instance.scheduler['port']}" if Config.instance.scheduler['port'] url += "/task" RestClient.patch(url, :id => schedule['id']) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
khronos-0.0.3.pre2 | lib/khronos/server/runner.rb |