В файле node.js, который запускает ваш Javascript как однопоточный, если вы хотите, чтобы ваш сервер максимально реагировал на входящие запросы, вам необходимо удалить любой код, интенсивно использующий процессор, из основного процесса http-сервера.Это означает выполнение интенсивной работы процессора в каком-либо другом процессе.
Существует несколько различных подходов к этому:
- Используйте модуль
child_process
для запуска другого приложения nodejs, специально созданного для выполнения работы, интенсивно использующей ваш процессор. - Кластеризация вашего приложения, чтобы у вас было N различных процессов, которые могут выполнять как интенсивную загрузку ЦП, так и обрабатывать запросы.
- Создать рабочую очередь и ряд рабочих процессов, которые будут обрабатывать работу, интенсивно загружающую ЦП.
Если вы не выполняете эту интенсивную работу с ЦП очень часто, тогда, вероятно, самый простой вариант # 1.
Если вам нужно масштабировать по другим причинам (например, для обработки большого количества входящих запросов) ивы не часто выполняете ресурсоемкие операции # 2.
Если вы выполняете интенсивную работу с CPU довольно регулярно и хотите, чтобы обработка входящих запросов всегда имела наивысший приоритет, и вы готовы разрешить использование CPUЕсли вы потратите больше времени, то, вероятно, лучше всего использовать 3-ю очередь (очередь работ), и вы можете настроить количество рабочих процессов для оптимизации своего результата.