Я боролся с этим в течение недели и исчерпал все методы и варианты, которые я нашел в Интернете. Я надеюсь, что кто-то здесь сможет мне помочь.Расход памяти памяти Powershell Issue
Я использую powershell для запуска 8 заданий, каждое задание FFmpeg для передачи 7-минутного файла на удаленный RTMP-сервер. Это извлекается из файла на диске, и каждое задание использует другой файл. Команда находится в цикле do while, так что она постоянно перегорает.
Это вызывает оболочку, из которой я запускал задания, чтобы накопить огромное количество памяти, потребляя все, что может. В течение 24 часов он потреблял 30 из 32 ГБ моего сервера.
Вот мой код запуска, любая помощь будет оценена по достоинству.
start-job -Name v6 -scriptblock {
do { $d = $true; $f = Invoke-Expression -Command "ffmpeg -re -i `"C:\Shares\Matthew\180p_3000k.mp4`" -vcodec copy -acodec copy -f flv -y rtmp://<ip>/<appName>/<streamName>"; $f = $null }
while ($d = $true)
}
Я пытался получить работу и через канал, из-нуля, я попытался установить $ е до $ нуля перед запуском делать во время цикла, и некоторые другие вещи, которые я найти онлайн, но безрезультатно. Спасибо всем за ваше время!
делать {} при этом ($ D = $ True) –
** делать {} в то время ($ d = $ истина) ** является бесконечная петля. Ваше выражение будет вызываться снова и снова ... Если вы хотите проверить условие, выполняйте ** while ($ d -eq $ true) ** Затем снова «do {$ d = $ true; } while ($ d -eq $ true) 'также является бесконечным циклом, если вы не установите где-либо $ d в $ false. Что-то не так с вашей логикой. Можете ли вы попытаться ввести логику в слова в свой вопрос? Постоянно переигрывать? Или повторная потоковая передача, когда заканчивается один поток? –
О, мужик, глупая ошибка, которую я сделал снова. Я поменяю ее на $ d -eq $ true, но она должна быть бесконечным looo. Когда 7-минутный клип заканчивается, он должен снова повторить его. Может быть, я не должен делать бесконечный цикл и ждать завершения задания и переделать работу? –