These are chat archives for synrc/n2o

28th
May 2015
Alex Radetsky
@radetsky
May 28 2015 11:54
Всем привет!
Есть вопрос: как отдать поток в 500Мб из n2o ? К примеру, 500 тысяч записей из базы данных ? Попытка решить проблему в лоб привела к тому, что VM вылетает с ошибкой невозможности получить память.
То есть надо отдать header, а потом по 100-200 записей кидать клиенту.
Не проблема получить эти 100-200 записей. Проблема как отдать. В perl/php я бы сделал print HEADER\n\n, а потом while (line = <FILE>) print line;
Andy
@m-2k
May 28 2015 12:00
отдать одним html 500мб?
Alex Radetsky
@radetsky
May 28 2015 12:01
Это не совсем HTML. Это XML.
Andy
@m-2k
May 28 2015 12:01
классный сервис отдающий за раз 500метров
Alex Radetsky
@radetsky
May 28 2015 12:01
обратная совместимость, что б ёё.
Andy
@m-2k
May 28 2015 12:02
ява такая ява
Alex Radetsky
@radetsky
May 28 2015 12:02
API есть и будет есть. Надо придерживаться.
Увы.
Andy
@m-2k
May 28 2015 12:03
показывай код
и стек ошибки
решение на ковбое или через n2o?
Alex Radetsky
@radetsky
May 28 2015 12:05
Какой ? Нету стэка. Есть облом VM. Расследование показало где именно, но стэка нет. Я и сам дошел. Сначала там 500 тысяч читаются из базы, а потом формируется XML и возвращается из модуля в n2o. По пути проходит через обработку массивов пару раз по типу [ || ] . Вот и вылет.
n2o 1.1
Andy
@m-2k
May 28 2015 12:06
скок оперативки на машине?
Alex Radetsky
@radetsky
May 28 2015 12:06
В общем, надо как-то постепенно отдать этот поток.
2Гб.
Andy
@m-2k
May 28 2015 12:06
ЛООООООООЛ
АХАХАХАХАХАХАХАХ
/thread
Alex Radetsky
@radetsky
May 28 2015 12:07
Да, блин, никто не ожидал такого кол-ва. Юзеры - такие юзеры.
Вариант увеличить память не предлагать. Хочу более надежного решения.
Andy
@m-2k
May 28 2015 12:17
бери по сотне строк из бд, обрабатывай и формируй бинарь, хвостовой рекурсией
Alex Radetsky
@radetsky
May 28 2015 12:34
Проблема не в том, как его сформировать, а проблема в том, как его отдать. Как объяснить n2o, что пора отдать header и начинать отдавать т
ответ пользователю
?
Andy
@m-2k
May 28 2015 12:54
навесь на ковбой свой хэндлер и рендерь из него
как объяснить? а как до этого объяснял? Module:main/0 возвращает html страницу
Alex Radetsky
@radetsky
May 28 2015 12:59
До этого не приходилось такое делать. Прийдется копать в сторону cowboy_req:set_resp_body_fun()