) так, чтобы он работал в отдельном потоке (но я не знаю, насколько эффективным является это решение).
ратил несколько дней на то, чтобы найти примеры не-эхо-серверов для eventmachine, но, похоже, их просто нет. Допустим, я хочу написать сервер, который принимает файл и записывает его в Tempfile:
require 'rubygems'
require 'tempfile'
require 'eventmachine'
module ExampleServer
def receive_data(data)
f = Tempfile.new('random')
f.write(data)
ensure
f.close
end
end
EventMachine::run {
EventMachine::start_server "127.0.0.1", 8081, ExampleServer
puts 'running example server on 8081'
}
Запись в файл блокирует реактор, но я не понимаю, как это сделать, 'стиль Eventmachine'. Должен ли я читать данные порциями и записывать каждый порции на диск в блоке Em.next_tick?
Спасибо за любую помощь Андреас