Vladimir
Это называется - балансировщик
Vladimir
Он нужен всегда, так что какая разница
Vladimir
Очередь должна жить в отдельном процессе
Vladimir
Если нужно что считать - то да
Vladimir
Берёшь c++ и пишешь аддон
Vladimir
К сожалению, чтобы писать C++ на продакшн, нужно реально быть в теме
Loyd
лалка
Loyd
Ну да, нафига вообще разрабы раста упарывались, придумывали какие-то лайфтаймы, если оно вон как просто. А уж типажы, да алгтд проверяемые так вообще давно в крестах, угу
Yan👀
Как сделать чтобы сервак не падала от 1кк вставок в монгу подряд?)))
Yan👀
использую балк инсерт для монги
Yan👀
по 10к вставляю
Yan👀
но все равно около 300к итерации валится сё
Loyd
а от чего падает-то?
Anton
Вангую что валится по таймауту
Yan👀
Yan👀
читаю из файла с помощью рид стрима
Loyd
0_o
Loyd
внезапно
Yan👀
забыл добавить чтобы вставка 1кк элементов из csv файла
Yan👀
да
Yan👀
ну у себя на компуктере монгу запускаю
Michael
Yan👀
перед каждой вставкой чищу
Loyd
Дык, а как пишешь-то?
Loyd
Ну, на стрим подписан и по приходу данных или с read-ом каким?
Yan👀
нене
Yan👀
он записывает 294к записей
Yan👀
и после этого память кончается
Loyd
Мне кажется скорее в буфере в стриме оседает
Yan👀
могу в личку скрин кинуть чтобы чат не засирать?)
Loyd
Yan, как читаешь из стрима?
Loyd
Тебе нужно readable событие + read внутри, имхо
Yan👀
ща сек)
Yan👀
тьфу сорри за отступы
Loyd
наговнокодил и бросил
Yan👀
да не
Yan👀
увидел различие отступов
Yan👀
слил их до нуля
Yan👀
и проглядел чтео
Yan👀
выпилю-ка
Michael
let'ы вместо const'ов, var'ы
Loyd
Ой, да идите вы со своими const
Loyd
Будь это про иммутабельность, было бы ок
Loyd
а так это хз вообще зачем такое
Michael
Это иммутабельность значения
Michael
Примитива/ссылки
Loyd
Это корявенько
Loyd
Скрин пропал, но вроде там не в коллбеке обновление было
Loyd
Но это ладно. Так-то да, проблема именно в том, что не ожидаешь
Loyd
Либо явнную паузу, либо readable + read()
Loyd
Но лучшее решение: сделай writeable стрим
Loyd
ну да
Loyd
как обновилось — вызвал cb()
Loyd
Тут должно быть так: readable -> transform -> writable
Loyd
Да, но буфер ограничен по дефолту
Loyd
И как только заполняется, то делается пауза
Loyd
Не понял
Loyd
У writeable и у readable есть собственные буферы
Loyd
16 кб по дефолту
Yan👀
Yan👀
я правильно понял про паузу стрима на время массовой заливки в монгу?
Loyd
Дык, ты в _write дёргаешь cb, когда готов дальше принимать данные
Loyd
а дёргаешь ты его когда mongo записала данные
Loyd
нет, pause будет, если больше
Loyd
да, только идеоматично
Loyd
Ну ты почитай https://nodejs.org/api/stream.html , там хорошие примеры даны как это делается идеоматично соверменной ноде на стримах
Loyd
readable -> tranform -> writeable это практически классика
Yan👀
es.split чтобы файл читать построчно
Loyd
Yan, не ясно какой смысл от тех пауз что ты поставил
Loyd
update же асинхронный
Loyd
ну да-да, я не так выразился
Loyd
имел ввиду что толк-то есть от pause этого?
Loyd
да
Loyd
Или сделать на потоках, как и надо
Michael
@vkurchatkin, а у флоу есть тайпинги для ноды изкаропки? А то у меня на Buffer.from ругалось на работке.
Yan👀
в смысле сдлеать на потоках?
Yan👀
это?
Yan👀
readable -> tranform -> writeable это практически классика
Loyd
да
Yan👀
прочитать строку а точнее 3к
и перед bulk.execute трансформировать во writetable?