|
|
|
Проблема с timeout под IIS
|
|||
|---|---|---|---|
|
#18+
Ситуация следующая: Необходимо из большой текстовой базы (своеобразное форматирование с описанным стандартом - 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"); Ничего не помогает. Разрезать на куски исходную базу нельзя (из-за его форматирования). При попытках сохранить полученный массив в несколько небольших файлов, вываливается таже хрень. Уже устал, что делать не знаю. Помогите очень нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2004, 16:07 |
|
||
|
Проблема с timeout под IIS
|
|||
|---|---|---|---|
|
#18+
Андрей 567Делаю это чудо на PHP под IIS 5.0На локальном сервере?set_time_limit(5000);Эта функция может неработать ( set_time_limit )mssql.timeout - 600 mssql.connect_timeoutВообще, имхо, к проблеме отношения не имеют.Разрезать на куски исходную базу нельзя (из-за его форматирования).Почему?При попытках сохранить полученный массив в несколько небольших файлов, вываливается таже хрень.В этом нет никакого смысла - я бы ещё понял, если бы ты данные запрашивал порциями и записывал, а при следующем запуске продолжал с места предыдущего остановаУже устал, что делать не знаю.PHP не нужен вэб сервер для работы - если работаешь на локальной машине - воспользуйся php.exe. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2004, 16:38 |
|
||
|
Проблема с timeout под IIS
|
|||
|---|---|---|---|
|
#18+
Да делаю на удаленном сервере (по локальной сети). Но это не решение проблемы, т.к. переодически подобная проблемма и на др. удаленных машинах была (ответ до сих пор не нашел). Set_time_limit () - загадга, реально работает дольше, чем по умолчанию, т.е > 90 сек. Разрезать на куски исходную базу нельзя, т.к. исходные данные хранятся в строчках (для востановления полной картины необходимо полностью считать этот файл). Например строчка X- вначале файла, а Y - (обновление строчки X) в конце. Таков формат. А вот по поводу записи порциями (с мест останова) - сейчас именно так и делаю. Одним словом текущую проблему решил. а вот как дальше быть с подобными задачами. А возникает эта проблема последнее время довольно регулярно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2004, 17:00 |
|
||
|
Проблема с timeout под IIS
|
|||
|---|---|---|---|
|
#18+
Работа с соединениями Если ignore_user_abort не поможет - то дальше, думаю, надо копать в сторону IIS'а - PHP здесь вроде как уже не при чём. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2004, 17:04 |
|
||
|
Проблема с timeout под IIS
|
|||
|---|---|---|---|
|
#18+
Да, и консольную версию можно пользовать при помощи крона или at ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2004, 17:08 |
|
||
|
Проблема с timeout под IIS
|
|||
|---|---|---|---|
|
#18+
тебе это надо сделать один раз или постоянно делать ? (я про парсинг 500Мб) Вообще такие скрипты надо не от сервера запускать а из командной строки (php-cli) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2004, 17:09 |
|
||
|
Проблема с timeout под IIS
|
|||
|---|---|---|---|
|
#18+
Мне парсить это нужно будет систематически. Проблемма в том, что сейчас я из исходной базы вытаскиваю только небольшую часть данных. Реально нужно будет гораздо больше. Все это усложняется там, что 500 Mb это только тестовая версия базы, что будет реально боюсь даже подумать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2004, 17:15 |
|
||
|
Проблема с timeout под IIS
|
|||
|---|---|---|---|
|
#18+
Используй ASP! И будет тебе щастие! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2004, 17:25 |
|
||
|
Проблема с timeout под IIS
|
|||
|---|---|---|---|
|
#18+
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'ов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2004, 17:29 |
|
||
|
Проблема с timeout под IIS
|
|||
|---|---|---|---|
|
#18+
А скрипт у тебя на экран что нить выводит пока все это выполняется? Можно попробовать set_time_limit(0); ignore_user_abort; Но при этом, наксолько я знаю, надо давать хоть какой нибудь вывод на экран. А после окончания парсинга убивать скрипт вручную. И кстати, если скрипт будет загружать сервер, IIS по любому убьет твой процесс. Вставляй sleep после например 100 INSERT'ов. На экран постоянно выводятся системные фразы. И делаю постоянно flush(); иначе браузер отвалится. set_time_limit (1000); - стоит, (0) - типа без ограничений. ignore_user_abort; - пока не пробовал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2004, 17:37 |
|
||
|
Проблема с timeout под IIS
|
|||
|---|---|---|---|
|
#18+
Судя по всему - он тебе не поможет - ты уже постарался, чтобы браузер не закрывал соединения. Всё же прислушайся к тому, что сказал Макс М. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2004, 18:39 |
|
||
|
Проблема с timeout под IIS
|
|||
|---|---|---|---|
|
#18+
такие задачи не решаются скриптами, которые запускаются от сервера (ИМХО). Либо, запускать скрипт планировщиком задач (вроде так под виндоуз называется аналог cron-а) Либо попробовать запускать скрипт в бекграунд через exec("c:\php\cli\php-cli.exe /path/to/script.php ..."); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2004, 23:28 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=32830885&tid=1479051]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
153ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 470ms |

| 0 / 0 |
