от
У меня есть большая папка с файлами, которые я прохожу и запуска командной оболочки Bash на (это связано с звуковой анализ). Каждая из этих команд займет много времени и процессора виртуальная машина быстро достигает 100% нагрузки и она падает. Есть ли способ контролировать нерест
child_process
так он защищает операционную систему от сбоев? Может, как имея ограниченный пул процессов, запущенных в данный момент времени или что-то... я надеюсь, что кто-то имеет опыт с этим, так как я ничего не нашел, когда гуглил проблему :Д Я надеюсь, что вопрос не слишком экзотические :) Ура!

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

1 Ответ

0 голосов
от
Есть ли способ контролировать нерест child_process' так он защищает операционную систему от сбоев? Да, есть. Вы бы либо использовать какие-то встроенные очереди системы или системы управления задачами, где вы предварительно настроить, сколько процессов вы хотите работать на этих различных заданий одновременно или вы строите свой собственный. Как и все вопросы здесь на сайте StackOverflow, вы получите ответ, что это намного больше, специфичные для вашей конкретной ситуации, если вы включите ваш фактический код у вас есть сейчас. Но, общая концепция такова: вы создаете очереди работать. Вы сами решаете, сколько процессов вы хотите работать сразу. Когда вы добавляете что-то в очередь, вы проверяете, чтобы увидеть, как многие процессы уже запущены. Если Макс уже не работает, то вы просто добавить задание в очередь. Если максимальное число процессов еще не работает, вы создаете новый процесс, передать его самый старый элемент из очереди и инкрементировать счетчик, который отслеживает, сколько дочерних процессов (или процессов работник) в настоящее время у вас есть открытые. Вы контролировать каждый процесс, так что вы знаете, когда это делается. Когда один заканчивается, вы не только результатом, но и модифицировать счетчик по количеству запущенных процессов, а затем, если вы не в макс, а ты хватаешь следующего задания в очереди и запуск дочернего процесса для этого.' Дочерние процессы могут либо выполняться до завершения и остановки для каждого задания, начиная новую для каждого нового элемента в очередь или вы можете их взаимодействия завершения, но не прекращается, и вы можете отправить им новый рабочий элемент. Есть многочисленные организации труда или управления рабочих пакетов в НПМ или вы можете довольно просто создать свой собственный. Я бы лично схватить библиотека, которая уже написана, но пригодность для задач каждого из существующей библиотеки зависит от конкретных деталей реализации, которые у вас не общий.
...