Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Проблема с timeout под IIS / 12 сообщений из 12, страница 1 из 1
16.12.2004, 16:07
    #32830702
Андрей 567
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с timeout под IIS
Ситуация следующая:
Необходимо из большой текстовой базы (своеобразное форматирование с описанным стандартом - 500 Mb) переложить данные в MsSQL.
Делаю это чудо на PHP под IIS 5.0

В итоге имею массив с нужными данными. Составляю INSERT-ы (группами по 100 шт.) и отправляю MsSQL.
Так вот и проблемма максимум удается добавить 30000-40000 записей.
Потом отрубается все:

HTTP/1.1 502 Gateway Error Server: Microsoft-IIS/5.0 Date: Thu, 16 Dec 2004 12:35:25 GMT Connection: close Content-Length: 186 Content-Type: text/html
CGI Timeout
The specified CGI application exceeded the allowed time for processing. The server has deleted the process.

Уже делал следующее:

set_time_limit ( 5000);
в php.ini - mssql.timeout - 600
- mssql.connect_timeout
ini_set ("mssql.timeout", "1000");

Ничего не помогает.

Разрезать на куски исходную базу нельзя (из-за его форматирования).
При попытках сохранить полученный массив в несколько небольших файлов, вываливается таже хрень.
Уже устал, что делать не знаю. Помогите очень нужно
...
Рейтинг: 0 / 0
16.12.2004, 16:38
    #32830790
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с timeout под IIS
Андрей 567Делаю это чудо на PHP под IIS 5.0На локальном сервере?set_time_limit(5000);Эта функция может неработать ( set_time_limit )mssql.timeout - 600
mssql.connect_timeoutВообще, имхо, к проблеме отношения не имеют.Разрезать на куски исходную базу нельзя (из-за его форматирования).Почему?При попытках сохранить полученный массив в несколько небольших файлов, вываливается таже хрень.В этом нет никакого смысла - я бы ещё понял, если бы ты данные запрашивал порциями и записывал, а при следующем запуске продолжал с места предыдущего остановаУже устал, что делать не знаю.PHP не нужен вэб сервер для работы - если работаешь на локальной машине - воспользуйся php.exe.
...
Рейтинг: 0 / 0
16.12.2004, 17:00
    #32830861
Андрей 567
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с timeout под IIS
Да делаю на удаленном сервере (по локальной сети).
Но это не решение проблемы, т.к. переодически подобная проблемма и на др. удаленных машинах была (ответ до сих пор не нашел).

Set_time_limit () - загадга, реально работает дольше, чем по умолчанию, т.е > 90 сек.

Разрезать на куски исходную базу нельзя, т.к. исходные данные хранятся в строчках (для востановления полной картины необходимо полностью считать этот файл). Например строчка X- вначале файла, а Y - (обновление строчки X) в конце. Таков формат.

А вот по поводу записи порциями (с мест останова) - сейчас именно так и делаю.

Одним словом текущую проблему решил. а вот как дальше быть с подобными задачами. А возникает эта проблема последнее время довольно регулярно.
...
Рейтинг: 0 / 0
16.12.2004, 17:04
    #32830885
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с timeout под IIS
Работа с соединениями
Если ignore_user_abort не поможет - то дальше, думаю, надо копать в сторону IIS'а - PHP здесь вроде как уже не при чём.
...
Рейтинг: 0 / 0
16.12.2004, 17:08
    #32830895
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с timeout под IIS
Да, и консольную версию можно пользовать при помощи крона или at
...
Рейтинг: 0 / 0
16.12.2004, 17:09
    #32830899
Макс М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с timeout под IIS
тебе это надо сделать один раз или постоянно делать ? (я про парсинг 500Мб)
Вообще такие скрипты надо не от сервера запускать а из командной строки (php-cli)
...
Рейтинг: 0 / 0
16.12.2004, 17:15
    #32830923
Андрей 567
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с timeout под IIS
Мне парсить это нужно будет систематически.
Проблемма в том, что сейчас я из исходной базы вытаскиваю только небольшую часть данных. Реально нужно будет гораздо больше.
Все это усложняется там, что 500 Mb это только тестовая версия базы, что будет реально боюсь даже подумать
...
Рейтинг: 0 / 0
16.12.2004, 17:25
    #32830965
lamer_lox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с timeout под IIS
Используй ASP! И будет тебе щастие!
...
Рейтинг: 0 / 0
16.12.2004, 17:29
    #32830985
VERS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с timeout под IIS
http://www.microsoft.com/resources/documentation/Windows/2000/server/reskit/en-us/Default.asp?url=/resources/documentation/Windows/2000/server/reskit/en-us/w2000Msgs/1367.asp

А скрипт у тебя на экран что нить выводит пока все это выполняется?
Можно попробовать
set_time_limit(0);
ignore_user_abort;

Но при этом, наксолько я знаю, надо давать хоть какой нибудь вывод на экран.
А после окончания парсинга убивать скрипт вручную. И кстати, если скрипт будет загружать сервер, IIS по любому убьет твой процесс. Вставляй sleep после например 100 INSERT'ов.
...
Рейтинг: 0 / 0
16.12.2004, 17:37
    #32831006
Андрей 567
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с timeout под IIS
А скрипт у тебя на экран что нить выводит пока все это выполняется?
Можно попробовать
set_time_limit(0);
ignore_user_abort;

Но при этом, наксолько я знаю, надо давать хоть какой нибудь вывод на экран.
А после окончания парсинга убивать скрипт вручную. И кстати, если скрипт будет загружать сервер, IIS по любому убьет твой процесс. Вставляй sleep после например 100 INSERT'ов.

На экран постоянно выводятся системные фразы. И делаю постоянно flush();
иначе браузер отвалится.
set_time_limit (1000); - стоит, (0) - типа без ограничений.

ignore_user_abort; - пока не пробовал
...
Рейтинг: 0 / 0
16.12.2004, 18:39
    #32831131
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с timeout под IIS
Судя по всему - он тебе не поможет - ты уже постарался, чтобы браузер не закрывал соединения. Всё же прислушайся к тому, что сказал Макс М.
...
Рейтинг: 0 / 0
16.12.2004, 23:28
    #32831328
Макс М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с timeout под IIS
такие задачи не решаются скриптами, которые запускаются от сервера (ИМХО).
Либо, запускать скрипт планировщиком задач (вроде так под виндоуз называется аналог cron-а)
Либо попробовать запускать скрипт в бекграунд через exec("c:\php\cli\php-cli.exe /path/to/script.php ...");
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Проблема с timeout под IIS / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]