Задать вопрос
GeekT
@GeekT
Основатель и генеральный директор "Пегий Дудочник"

Какие вы знаете способы выполнения тяжелых задач на node.js?

Какие вы знаете способы/трюки/маневры/лайфхаки выполнения тяжелых задач(аля перебор больших циклов) без блокировки event loop'a, то есть асинхронно, на NODE.JS?
  • Вопрос задан
  • 1112 просмотров
Подписаться 9 Средний 3 комментария
Пригласить эксперта
Ответы на вопрос 7
@SeaBreeze876
Front-end разработчик
Самое очевидное - не использовать nodejs для подобных задач, оно предназначено исключительно для IO. Можно поставить рядышком сервис, не страдающий от проблем однопоточности, и использовать rpc.
Ответ написан
Комментировать
kshshe
@kshshe
Frontend developer
Можно запускать дочерний процесс, в котором выполнять тяжелые задачи без блокировки основного.
Документация
Ответ написан
Комментировать
MAKAPOH
@MAKAPOH
многостаночник
В дополнении к перечисленому, в nodejs недавно появилась эксперементальная возможность запускать код в отдельных потоках, называется Worker Threads.
Ответ написан
Xuxicheta
@Xuxicheta
инженер
Ну и последнее, вдобавок к вышеперечисленному
process.nextTick()
Ответ написан
@McBernar
Воркеры.
Или просто вторая нода.
Ответ написан
Комментировать
iCoderXXI
@iCoderXXI
React.JS/FrontEnd engineer
Нода не для вычислений, либо хитромудро дробить и вызывать отдельные фрагменты через setTimeout что тот еще костыль и логика будет подобна лапше, либо коллеги выше уже насоветовали.
Ответ написан
Комментировать
copist
@copist
Empower people to give
Использовать очередь заданий

1. NodeJS принимает задание (HTTP POST запрос с параметрами), передаёт служебную информацию в очередь (Apache Kafka, RabbitMQ)
2. Исполнитель извлекает задание, обрабатывает его, отправляет уведомление о завершении работы

Передача уведомдений возможна так же через очередь
Исполнитель для ресурсоёмких операций лучше делать на компилируемых языках, то есть C++, Erlang, GoLang
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы