Страница 1 из 2

Как реализовать выполнение скрипта несущего большую нагрузку

Добавлено: 05 май 2006, 11:25
cawa
В сети лежит интернет магазин написанный на php. Для каждого товара в базе на MySQL существует таблица характеристик. Возникла необходимость сформировать эти таблицы и записать их в фаилы. Это не сотавляет особого труда, но товаров огромное количество и скрипт за раз успевает записать лишь от 75-80 таблиц после чего его обрывает server(30 сек). Возможно ли как нибудь реализовать операцию создания таблиц характеристик не меняя время выполнения в php.ini?
Заранее большое спасибо!

Добавлено: 05 май 2006, 14:20
UUU
Запускать скрипт столько раз, сколько надо, запоминая позицию уже выполненного...

ЗЫ: насколько я понял, для каждого товара своя таблица? Этож каким идиотом надо быть, чтобы такое придумать... Лучше 1 таблица с мульеном записей, чем мульен таблиц с одной...

Добавлено: 05 май 2006, 17:57
cawa
Это предложение не серьезное, запускать много раз просто руки отвалются. А необходимость в куче html страничек есть!!! Ведь наверное должна быть какая нибудь возможность выполняться скрипту до его завершения.

Добавлено: 05 май 2006, 18:52
Duncon
так тебе об этом и написали пишешь скрипту которая это проделает за тебя...

Добавлено: 06 май 2006, 03:04
AiK
Временем выполнения скрипта можно управлять из самого скрипта.
А вообще-то, это на мой взгляд как раз тот случай, когда имеет смысл забить на PHP и написать демона на Perl (или на Ц).
Скрипт стартует, форкается, отвязывается от всех потоков ввода-вывода и работает себе тихо в бэкграунде даже после того, как пользователь закрыл браузер.
Это так, из общих соображений, без учёта смысла задачи.
А вообще, опытные собаководы рекомендуют создать инициализационный sql скрипт, закачать его на сервер по FTP и выполнить через ssh.

Добавлено: 06 май 2006, 09:09
cawa
Я и сам понимаю, что лучше это реализовать на Perl, но на хосте только php. А вот насчет управления временем из скрипта - если можно пример или ссылку на инфу.

Добавлено: 06 май 2006, 11:32
berkut
AiK, можно поинтересоваться, почему Perl предпочтительней с учётом появления php 5.1???

Добавлено: 06 май 2006, 12:39
Oscar
void set_time_limit ( int seconds )

If seconds is set to zero, no time limit is imposed

Добавлено: 06 май 2006, 13:01
cawa
Огромное спасибо!!!

Добавлено: 09 май 2006, 12:52
AiK
berkut, если ты мне расскажешь или хотя бы дашь ссылку где рассказывается, как на php реализовать демона, то буду премного благодарен. Что же касается учёта появления 5.1, то пока что её хостер не предоставляет.