Cómo escribir archivos (grandes) con Ruby Eventmachine
He pasado varios días buscando algunos ejemplos que no sean de servidor de eco para eventmachine, pero parece que no hay ninguno. Digamos que quiero escribir un servidor que acepte un archivo y lo escriba en un archivo temporal:
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'
}
Escribir en el archivo bloquearía el reactor, pero no entiendo cómo hacerlo 'Eventmachine style'. ¿Tendría que leer los datos en fragmentos y escribir cada fragmento en el disco dentro de un bloque Em.next_tick?
Gracias por cualquier ayuda Andreas