Sha256: b6867c9e73ab1c2650b5c5fd36e44eec40ec7fe44035d4b79391d4e52c89ae63
Contents?: true
Size: 1.27 KB
Versions: 2
Compression:
Stored size: 1.27 KB
Contents
require 'json' require 'eventmachine' require 'em-http' module Khronos module Server class Runner < EventMachine::Connection def post_init puts "-- someone connected to the server!" end def receive_data json puts "Receive data to run: #{json}" schedule = JSON.parse(json) send_data ">>> you sent: #{schedule.inspect}" # Close connection with client immediatelly close_connection if (url = schedule['task_url']) http = EventMachine::HttpRequest.new(url).get :redirects => 5 http.callback do puts "#{url}\n#{http.response_header.status} - #{http.response.length} bytes\n" puts http.response end http.errback do puts "#{url}\n" + http.error end enqueue_recurrency!(schedule) end end def enqueue_recurrency!(schedule) url = "http://#{Config.instance.scheduler['host']}" url += ":#{Config.instance.scheduler['port']}" if Config.instance.scheduler['port'] url += "/task?id=#{schedule['id']}" EventMachine::HttpRequest.new(url).patch :redirects => 2 end def unbind puts "-- someone disconnected from the echo server!" end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
khronos-0.0.2 | lib/khronos/server/runner.rb |
khronos-0.0.2.pre1 | lib/khronos/server/runner.rb |