Size: a a a

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

2021 June 10

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Любым способом запустить в отдельном потоке/процессе
источник

N

Nikita in Node.js — русскоговорящее сообщество
но там просто дурацкий внешний апи, нужно сравнивать достаточно вложенные структуры и на это уходит норм CPU времени
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Может можно оптимизировать
источник

N

Nikita in Node.js — русскоговорящее сообщество
надо через профайлер прогнать тогда чтобы понять где жрет больше всего ресурсов)
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Если это итерации, можно разбить на итерации и запускать в тасках, конечно, но не уверен, что это лучшее решение)
источник

KK

Kolya Kornilov in Node.js — русскоговорящее сообщество
Можно сложные цпу операции запускать в отдельном приложении, которое будет из очереди забирать задачи, потом его горизонтально масштабировать
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Это для совсем тяжёлых
источник

KK

Kolya Kornilov in Node.js — русскоговорящее сообщество
bull/rabbitmq можно взять для доставки задач
источник

N

Nikita in Node.js — русскоговорящее сообщество
+++, у меня не такие масштабы
источник

KK

Kolya Kornilov in Node.js — русскоговорящее сообщество
Это да, но просто такая схема хорошо масштабируется достаточно
источник

KK

Kolya Kornilov in Node.js — русскоговорящее сообщество
Т.к. redis и rabbitmq можно запускать в кластере тоже
источник

KK

Kolya Kornilov in Node.js — русскоговорящее сообщество
Ты не ограничен тогда ресурсами одного сервера
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Не всё нужно масштабировать
источник

KK

Kolya Kornilov in Node.js — русскоговорящее сообщество
Но для простых юзкейсов воркер-треды норм вполне считаю, но я не интересовался их бенчмарками
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Работа с другим потоком не медленнее, чем тоже самое через промежуточную среду
источник

KK

Kolya Kornilov in Node.js — русскоговорящее сообщество
Да, но там как бы тоже есть такой момент, что память тяжело шарить между воркер-тредами
источник

N

Nikita in Node.js — русскоговорящее сообщество
Задам еще по другому вопрос: у меня с внешнего апи приходят вебхуки когда изменилась сущность на другом сервисе, я это ложу в очередь (сейчас это bull), и потом делаю запрос на этот апи чтобы получить сущность, провести некоторые сравенения/вычисления у себя с БД, и если надо, обновить запись в моей базе. Таких хуков приходит до 500 в минуту, и когда столько приходит, ЦП на все 100% начинает юзаться и другие запросы на простые выборки с бд по моему апи уже начинают тупить, я правильно понял что нужно вынести вот это вычисление в отдельный воркер / и оптимизировать его?
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
На сколько я понял, у Никиты есть небольшая операция, которая является частью другой транзакции. Нужно лишь не блокировать тред на часть этой транзакции
источник

KK

Kolya Kornilov in Node.js — русскоговорящее сообщество
Да, просто надо учитывать, что тут появляются все проблемы тредов
источник

N

Nikita in Node.js — русскоговорящее сообщество
считайте эти сущности многоуровевнеыми документами с массивами
источник