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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы