Class: Takagi::Server::UdpWorker
- Inherits:
-
Object
- Object
- Takagi::Server::UdpWorker
- Defined in:
- lib/takagi/server/udp_worker.rb
Overview
Handles incoming UDP messages on behalf of the master Udp server.
Instance Method Summary collapse
-
#initialize(socket:, middleware_stack:, **options) ⇒ UdpWorker
constructor
A new instance of UdpWorker.
- #run ⇒ Object
Constructor Details
#initialize(socket:, middleware_stack:, **options) ⇒ UdpWorker
Returns a new instance of UdpWorker.
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/takagi/server/udp_worker.rb', line 10 def initialize(socket:, middleware_stack:, **) @socket = socket @middleware_stack = middleware_stack @router = .fetch(:router, nil) @sender = .fetch(:sender) @logger = .fetch(:logger) @port = .fetch(:port) @threads = .fetch(:threads) @dedup_cache = Takagi::Message::DeduplicationCache.new end |
Instance Method Details
#run ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/takagi/server/udp_worker.rb', line 21 def run @shutdown = false trap('TERM') { @shutdown = true } trap('INT') { @shutdown = true } queue = Queue.new Array.new(@threads) { spawn_thread(queue) } @logger.debug "[Worker PID: #{Process.pid}] Listening on CoAP://0.0.0.0:#{@port} with #{@threads} threads" process_loop(queue) end |