У меня есть запуск EventMachine, который прослушивает UDP-пакеты. Каждый раз, когда принимается UDP-пакет, я хотел бы переслать данные в базу данных с помощью вызова REST. Я создал подкласс EM :: Connection, в котором метод receive_data
пересылает данные через вызов REST.Использование EventMachine для выполнения нескольких запросов с использованием одного и того же соединения?
Поскольку частота данных довольно высока, я хотел бы повторно использовать связь между запросами (используя «keep-alive»), и, если возможно, также использовать конвейерную обработку. Что было бы хорошим способом разделить связь между различными вызовами?
В настоящее время мой UDPHandler выглядит примерно следующее:
module Udp
module Collector
class UDPHandler < EM::Connection
def receive_data(data)
http = EventMachine::HttpRequest.new('http://databaseurl.com/').post body: data
end
end
end
end
Этот класс называется следующим образом:
EM.run do
EM.open_datagram_socket('0.0.0.0', 9000, Udp::Collector::UDPHandler)
end
Я думал сделать запрос объекта переменной класса, но я не думаю, это хорошая идея в контексте eventmachines. Или это?
ли что-то подобное, спасибо! –