SHOW:
|
|
- or go back to the newest paste.
1 | require 'socket' | |
2 | require 'parseconfig' | |
3 | require 'logger' | |
4 | require 'celluloid/io' | |
5 | require 'celluloid/autostart' | |
6 | ||
7 | ||
8 | require_relative 'agrimi/answer_worker' | |
9 | require_relative 'agrimi/request' | |
10 | require_relative 'agrimi/response' | |
11 | ||
12 | module Agrimi | |
13 | class HTTPServer | |
14 | attr_reader :config_path, :server_root, :port | |
15 | include Celluloid::IO | |
16 | ||
17 | def initialize(port, server_root) | |
18 | @logger = Logger.new(STDOUT) | |
19 | @logger.level = Logger::DEBUG | |
20 | @port = port | |
21 | @server_root = server_root | |
22 | end | |
23 | ||
24 | def start | |
25 | @logger.debug { "Opening server" } | |
26 | @tcp_server = TCPServer.new("0.0.0.0", @port) | |
27 | @logger.debug { "Listening to 0.0.0.0 port #{@port} | |
28 | pointing #{@server_root}" } | |
29 | @pool = AnswerWorker.pool(size: 2) | |
30 | answer_worker = AnswerWorker.new | |
31 | client = nil | |
32 | loop do | |
33 | client = @tcp_server.accept | |
34 | @logger.debug { "Server accepted" } | |
35 | # Initiate new Actor to handle the request | |
36 | @pool.async.start(client, @server_root) | |
37 | end | |
38 | stop | |
39 | end | |
40 | ||
41 | def stop | |
42 | @logger.debug "Closing server" | |
43 | @tcp_server.close | |
44 | @pool.terminate | |
45 | end | |
46 | end | |
47 | - | end |
47 | + | end |
48 | ||
49 | ||
50 | ======================================================================== | |
51 | ||
52 | E, [2013-10-06T20:54:31.769633 #25191] ERROR -- : Agrimi::HTTPServer crashed! | |
53 | NoMethodError: undefined method `new' for Celluloid::Logger:Module | |
54 | /home/vasilakisfil/Development/agrimi/lib/agrimi.rb:18:in `initialize' | |
55 | /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/calls.rb:25:in `public_send' | |
56 | /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/calls.rb:25:in `dispatch' | |
57 | /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/calls.rb:67:in `dispatch' | |
58 | /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/actor.rb:326:in `block in handle_message' | |
59 | /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/tasks.rb:42:in `block in initialize' | |
60 | /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' | |
61 | D, [2013-10-06T20:54:31.787851 #25191] DEBUG -- : Terminating 5 actors... | |
62 | D, [2013-10-06T20:54:31.792897 #25191] DEBUG -- : Shutdown completed cleanly | |
63 | /home/vasilakisfil/Development/agrimi/lib/agrimi.rb:18:in `initialize': undefined method `new' for Celluloid::Logger:Module (NoMethodError) | |
64 | from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/calls.rb:25:in `public_send' | |
65 | from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/calls.rb:25:in `dispatch' | |
66 | from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/calls.rb:67:in `dispatch' | |
67 | 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' | |
68 | from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/tasks.rb:42:in `block in initialize' | |
69 | 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' | |
70 | from (celluloid):0:in `remote procedure call' | |
71 | from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/calls.rb:95:in `value' | |
72 | 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' | |
73 | from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/legacy.rb:14:in `method_missing' | |
74 | from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/proxies/actor_proxy.rb:25:in `_send_' | |
75 | from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid.rb:129:in `new' | |
76 | from server.rb:4:in `<main>' |