Копирование в фоновом режиме
1.
SD (05.05.2010 / 01:59)
Необходимо организовать импорт файлов с другого сайта в фоне. Ставлю ignore_user_abort, на денвере, файл 200 мб копируется, всё ок, но во время копирования(минуты 3) проц грузится на 100 процентов, и зайти на какой нибудь другой линк сата невозможно - попросту не открывается... Как быть?
2.
Lugaro (05.05.2010 / 02:14)
Частями пробуй и в перерывах между ними sleep ставь
3.
SD (05.05.2010 / 02:35)
Не катит..
4.
Александр (05.05.2010 / 06:02)
exec?
5.
SD (05.05.2010 / 08:56)
A exec в данном случае не по аналогии с ignore_user_abort будет работать?
Кстати, насчет паузы я погорячился - надо проверить. Скорость ограничить. Дома буду, попробую.
6.
ктулху (05.05.2010 / 10:20)
Мне кажется проблема в том что апач в денвере без mpm, т.е. не многопоточный
7.
SD (05.05.2010 / 11:58)
Так, а если во время импорта зайти на сайт с другого браузера, то всё норм
8.
Azzido (05.05.2010 / 12:26)
значит у тебя в скрипте не правилно сделано, сначало закончи вывод всей разметки,потом ignore_user_abort далее переадресация и импортируй файл
9.
Александр (05.05.2010 / 12:34)
ставь отдельно Apache2 + php. Не должен проц грузиться так, не должен.
У самого стоит и при копировании copy() все работает. так что... или денвер или.. хз.
10.
Azzido (05.05.2010 / 12:48)
тут не в загрузке проца дело а браузер ждет когда завершится скрипт
11.
Александр (05.05.2010 / 13:47)
он же говорит что по ссылке переходит.. то есть может быть открывает в новой вкладке или окне. Браузер не будет переходить?
хотя бывало и такое...
12.
Azzido (05.05.2010 / 13:50)
11, ну вот для примера обычную страничку с ссылкой если сделать, и там грубо говоря вот такое while(1){} то браузер так же подвиснет и будет ждать завершения цикла
13.
SD (05.05.2010 / 14:25)
8.
Azzido, у меня так и сделано..
14.
SD (07.05.2010 / 01:59)
В общем заметил, что брауз висит из-за строки session_start(), её коментирую и всё ок. какие будут предложения?
15.
Lugaro (07.05.2010 / 02:26)
header('Location: куда то');
flush();
Дальше код который долго выполняется
16.
SD (07.05.2010 / 02:46)
Решил проблему - session_destroy после авторизации. Теперь другой трабл - не срабатывает переадресация, т.е. скрипт висит, пока не остановишь и сам не перейдешь. с flush сработала, но 'долгий код' не выполнился. Пробовал sleep(3) после header(Location - не прокатило. Как быть?
17.
Lugaro (07.05.2010 / 03:17)
Всё должно работать, set_time_limit и
ignore_user_abort стоит?
18.
SD (07.05.2010 / 12:21)
Да, стоит.
19.
SD (07.05.2010 / 12:23)
Может из-за ob_start?
20.
WCO (07.05.2010 / 17:22)
header('Location: куда то');
ob_end_flush();
..........
21.
SD (07.05.2010 / 22:48)
20.
WCO, да не помогает... я даже ob_start() убирал - без изменений...
Что же делать??
22.
SD (07.05.2010 / 22:51)
20. WCO, да не помогает... я даже ob_start() убирал - без изменений...
Что же делать??
23.
Саня (08.05.2010 / 12:13)
В таких случаях говорят: залей скрипт на апвап, мысли читать не умеем...
24.
SD (08.05.2010 / 18:29)
23, отвeт получил нa форумe пхп.су, видимо тaм умeют читaть мысли;) всeм спaсибо зa внимaниe, вопрос исчeрпaн..
URL:
https://visavi.net/topics/9040