Скрипт не работает нужное время :)

Winer

Мимо проходил
Скрипт не работает нужное время :)

Есть скрипт. Он проходит по определённому списку папок и делает thumnails к картинкам в этих папках, но только если thumbanil к картинке ещё нет.
Проблема:
В начале скрипта ставим set_time_limit(0)
После запуска(броузером) через некоторое время он перестаёт делать thumbnails , хотя работу не заканчивает.
Если его запустить ещё раз скрипт делает thumnail некоторое время а потом опять такая же фигня.
Может ли это быть связано с чем-то другим, кроме ошибок в скрипте???
т.е запускаю, смотрю в шелле top - apache юзает 97-98 cpu,
через некоторое время он юзает 0 cpu
 

Winer

Мимо проходил
нет, в том то и дело, скрипт продолжает работать, но ничего не делает, т.е. видно - когда он ресайзит, он юзает CPU по полной, когда не ресайзит, а проходит по папкам - юзает 10-15% CPU, но через некоторое время он CPU не юзает вообще.
Запускаешь скрипт по новой, он проходит по папкам, доходит до тех, где thumbnails ещё нет, в части папок делает thumnails, а потом опять ничего не делает и висит.
 

young

Новичок
Запускаешь скрипт по новой, он проходит по папкам, доходит до тех, где thumbnails ещё нет, в части папок делает thumnails, а потом опять ничего не делает и висит.
может он бесцельно бродит оп папкам?
веди логи, дебаж скрипт
 

Winer

Мимо проходил
когда он бесцельно бродит по папкам, загрузка 10-15%, потому что он не совсем бесцельно бродит :) логи веду - выдаю путь к текущей папке броузеру. через некотрое время, просто перестаёт его выдавать
алгоритм слеующий
PHP:
$folders=array_of_folders;
for($i=0;$i<count($folders);$i++)
{
      $subfolders=list_of_subfolders($folders[$i]);
      for($j=0;$j<count($subfolders);$j++) 
      {
           $files=list_of_files($subfolders[$j]);
           for($k=0;$k<count($files);$k++)
           {
                resize($files[$k]);
           };
      }
};
т.е ему вроде как и негде зацикливаться, хотя вроде как зацикливаеться. оставил его на ночь на серваке, он так до утра и висел, а сделал только 1/3.

-~{}~ 15.04.04 18:10:

не обращайте внимания на count() в for'e, на самом деле он вычисляеться перед циклом, в цикле используеться переменная
 

SiMM

Новичок
Автор оригинала: Winer
т.е ему вроде как и негде зацикливаться, хотя вроде как зацикливаеться. оставил его на ночь на серваке, он так до утра и висел, а сделал только 1/3.
Почему ты решил, что он "висел до утра"? Скорее всего, твой процесс просто-напросто был прибит. А php.ini -> max_execution_time не имеет к этому отношения?
 

Winer

Мимо проходил
да, забыл сказать, сервак "наш личный", поэтому скрипт никто не мог прибить(из людей) :) имеет, но так же имеет и set_time_limit(0).
 

Winer

Мимо проходил
Krisha
когда ставлю, когда не ставлю, но чаще ставлю :) это привычка
 

Линк

Guest
а вот ты веди логи после КАЖДОГО действия
и увидишь

что бы не было такого: "он висел, а че делал - непонятно"
каждое дейстивие - в лог
авось поможет
 
Сверху