Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'socket'
- require 'parseconfig'
- require 'logger'
- require 'celluloid/io'
- require 'celluloid/autostart'
- require_relative 'agrimi/answer_worker'
- require_relative 'agrimi/request'
- require_relative 'agrimi/response'
- module Agrimi
- class HTTPServer
- attr_reader :config_path, :server_root, :port
- include Celluloid::IO
- def initialize(port, server_root)
- @logger = Logger.new(STDOUT)
- @logger.level = Logger::DEBUG
- @port = port
- @server_root = server_root
- end
- def start
- @logger.debug { "Opening server" }
- @tcp_server = TCPServer.new("0.0.0.0", @port)
- @logger.debug { "Listening to 0.0.0.0 port #{@port}
- pointing #{@server_root}" }
- @pool = AnswerWorker.pool(size: 2)
- answer_worker = AnswerWorker.new
- client = nil
- loop do
- client = @tcp_server.accept
- @logger.debug { "Server accepted" }
- # Initiate new Actor to handle the request
- @pool.async.start(client, @server_root)
- end
- stop
- end
- def stop
- @logger.debug "Closing server"
- @tcp_server.close
- @pool.terminate
- end
- end
- end
- ========================================================================
- E, [2013-10-06T20:54:31.769633 #25191] ERROR -- : Agrimi::HTTPServer crashed!
- NoMethodError: undefined method `new' for Celluloid::Logger:Module
- /home/vasilakisfil/Development/agrimi/lib/agrimi.rb:18:in `initialize'
- /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/calls.rb:25:in `public_send'
- /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/calls.rb:25:in `dispatch'
- /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/calls.rb:67:in `dispatch'
- /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/actor.rb:326:in `block in handle_message'
- /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/tasks.rb:42:in `block in initialize'
- /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/tasks/task_fiber.rb:11:in `block in create'
- D, [2013-10-06T20:54:31.787851 #25191] DEBUG -- : Terminating 5 actors...
- D, [2013-10-06T20:54:31.792897 #25191] DEBUG -- : Shutdown completed cleanly
- /home/vasilakisfil/Development/agrimi/lib/agrimi.rb:18:in `initialize': undefined method `new' for Celluloid::Logger:Module (NoMethodError)
- from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/calls.rb:25:in `public_send'
- from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/calls.rb:25:in `dispatch'
- from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/calls.rb:67:in `dispatch'
- from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/actor.rb:326:in `block in handle_message'
- from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/tasks.rb:42:in `block in initialize'
- from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/tasks/task_fiber.rb:11:in `block in create'
- from (celluloid):0:in `remote procedure call'
- from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/calls.rb:95:in `value'
- from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/proxies/sync_proxy.rb:28:in `method_missing'
- from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/legacy.rb:14:in `method_missing'
- from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/proxies/actor_proxy.rb:25:in `_send_'
- from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid.rb:129:in `new'
- from server.rb:4:in `<main>'
Advertisement
Add Comment
Please, Sign In to add comment