Size: a a a

Node.js — русскоговорящее сообщество

2020 March 26

BY

Bohdan Yurchuk in Node.js — русскоговорящее сообщество
Konstantin
await Promise.allSettled(map…)
я не думаю что мне надо дожидатся конца исполнения
всей очереди
источник

K

Konstantin in Node.js — русскоговорящее сообщество
Bohdan Yurchuk
я не думаю что мне надо дожидатся конца исполнения
всей очереди
Promise.all() ждёт до последнего так же, но всё зависит от тз
источник

BY

Bohdan Yurchuk in Node.js — русскоговорящее сообщество
фишка в том что например если ошибка упадет в 10 обьекте то нужно ёё обработать
а остальные пусть не обращают на ето внимание
источник

K

Konstantin in Node.js — русскоговорящее сообщество
Bohdan Yurchuk
фишка в том что например если ошибка упадет в 10 обьекте то нужно ёё обработать
а остальные пусть не обращают на ето внимание
По-этому я и написал, allSettled
источник

BY

Bohdan Yurchuk in Node.js — русскоговорящее сообщество
Konstantin
Promise.all() ждёт до последнего так же, но всё зависит от тз
видиш ли промис алл упадет на первой ошибке
источник

K

Konstantin in Node.js — русскоговорящее сообщество
Bohdan Yurchuk
видиш ли промис алл упадет на первой ошибке
Извини, но ты внимательно читаешь, что тебе пишут?
источник

BY

Bohdan Yurchuk in Node.js — русскоговорящее сообщество
Konstantin
По-этому я и написал, allSettled
мы просто розсихронизировались в сообщениях :)
сори
источник

倫岡

倫太郎 岡部 in Node.js — русскоговорящее сообщество
Konstantin
Извини, но ты внимательно читаешь, что тебе пишут?
диалог уровня @js_noobs_ru походу
источник

K

Konstantin in Node.js — русскоговорящее сообщество
倫太郎 岡部
диалог уровня @js_noobs_ru походу
К сожалению
источник

BY

Bohdan Yurchuk in Node.js — русскоговорящее сообщество
倫太郎 岡部
диалог уровня @js_noobs_ru походу
возможно я просто так описал,
но как по мне вкусный архитектурный вопрос.
тут уже как подойти к решению
источник

倫岡

倫太郎 岡部 in Node.js — русскоговорящее сообщество
🤔
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
Bohdan Yurchuk
всем привет
есть нотификейшн микросервис
он принимает масив из допустим 1000 обьектов в каждом id юзера ну и текст сообщения
—-
какой самый быстрый способ это обработать?
1) розбить на куски по 100 и запустить по воркеру на каждый
2) просто циклом но в цикле не ожидать ответа пред идущего
3) Promise.all ?
4) ваш вариант
а что понимается под обработкой? отправка через что-то куда-то?
источник

BY

Bohdan Yurchuk in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
а что понимается под обработкой? отправка через что-то куда-то?
да именно так
источник

K

Konstantin in Node.js — русскоговорящее сообщество
Другой конченый вариант был бы Promise.all(poorUsers.map(({id}) => notify({id, …shit}).catch(err => console.log(“i have only one job and i don’t know how to do it”))))
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
Bohdan Yurchuk
да именно так
т.е. задача не cpu-ёмкая, а значит нет смысла в воркерах.

promise.all или цикл без ожидания — по сути это одно и тоже. добавишь try-catch в функции отправки, чтобы не падало.

вопрос тут лишь в том, справится ли твоя отправлялка с таким объемом? если нет, то берешь p-limit или p-queue и делаешь очередь с некой конкурентностью
источник

BY

Bohdan Yurchuk in Node.js — русскоговорящее сообщество
Konstantin
Другой конченый вариант был бы Promise.all(poorUsers.map(({id}) => notify({id, …shit}).catch(err => console.log(“i have only one job and i don’t know how to do it”))))
смотри если допустим сообщение не отправилось из-за ошибки и в коде вместо консоль лога будет какой-то handleError(e)
то в таком случае Promise.all будет лучше чем Promise.allSettled так как второй возвращает масив и прийдеться по нем еще раз итерироватся и хендлить ошибки
источник

K

Konstantin in Node.js — русскоговорящее сообщество
Экономия на спичках, повесить catch можно на что угодно
источник

BY

Bohdan Yurchuk in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
т.е. задача не cpu-ёмкая, а значит нет смысла в воркерах.

promise.all или цикл без ожидания — по сути это одно и тоже. добавишь try-catch в функции отправки, чтобы не падало.

вопрос тут лишь в том, справится ли твоя отправлялка с таким объемом? если нет, то берешь p-limit или p-queue и делаешь очередь с некой конкурентностью
про CPU хорошее замечяние, действительно нет смысла у воркерах
источник

K

Konstantin in Node.js — русскоговорящее сообщество
Друзья, производите оптимизации - тогда когда есть проблемы, вот мой совет, всё остальное отменная сфероконина в вакууме и написание задачек на собесы.

После вас, придёт другой человек, и его кол-во “какого х@я” на каждые 100 строк кода будет прямо пропорционально всякой неявной лабуде которую вы себе понапридумываете с воркерами, параллелями, мессагинг системами и микросервисами по gRPC для возведения в квадрат натуральных чисел больше ноля
источник

BY

Bohdan Yurchuk in Node.js — русскоговорящее сообщество
Konstantin
Экономия на спичках, повесить catch можно на что угодно
можно, я просто в слух рассуждаю :)
источник