С нами с 24.05.09
Сообщения: 1788
Рейтинг: 508
|
Добавлено: 04/06/12 в 17:48 |
Всем привет!
Подскажите пожалуйста, кто знает, как можно сделать так, чтобы функция, которая требует время на свое выполнение (склейка песен, ffmpeg), нормально обрабатывалась в цикле, который дает ей поочередно много исходных данных?
Т.е., есть такое:
function super($text) {
_тут_склейка_песен_
(занимает 2-3 минуты на обработку)
return "OK";
}
for ($i=0;$i<count($array);$i++) {
super(array[$i]);
}
--------------
Делаю так, как выше - т.е. функция склейки, а вызываю ее для каждой строки (имена файлов для склейки) в цикле.
Но проблема в том, что она поработает первый цикл и затем тупит, завершается.
Подскажите пожалуйста, как сделать так, чтобы цикл ждал, пока функция выполнится на 100%, затем только делал следующую итерацию?
Не знаю, как искать в гугле такое, мучаюсь с завершением цикла, не выполнившегося так, как нужно.
Заранее огромное спасибо!
|
|
|
|
С нами с 24.12.10
Сообщения: 478
Рейтинг: 366
|
Добавлено: 04/06/12 в 18:54 |
ffmpeg запускаешь через shell_exec? если в конце команды есть что-то типа "> /dev/null 2>&1 &" то ждать завершения не будет
|
|
|
|
С нами с 03.02.11
Сообщения: 842
Рейтинг: 301
|
Добавлено: 04/06/12 в 19:23 |
читаю твои мысли... теперь код... нету в начале пых-файла set_time_limit(0); ?
уж очень мало информации, а у меня трава закончилась. в астрал без нее ну никак...
и забудь за Код: | for ($i=0;$i<count($array);$i++) {
super(array[$i]);
} |
делай Код: | foreach($array as $val)
super($val); |
|
|
|
|
С нами с 24.05.09
Сообщения: 1788
Рейтинг: 508
|
Добавлено: 04/06/12 в 20:06 |
AWD: огромное, огромное спасибо! Получилось!
Сорри, забыл написать, что тайм-лимит и лимит памяти задал:
Код: | set_time_limit (90000);
ini_set('memory_limit', '512M');
ini_set('max_input_time', '9000'); |
Создаются все, в порядке очереди. Я так рад, что не придется кнопку на каждый трек жать, ура!
shar: да, через exec вызываю, но dev null нет, т.к. винда.
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |