Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Скрипт который мог бы выполняться долго

10K
22 января 2009 года
yaga
12 / / 04.08.2005
Всем привет!
Вообще то я пишу на C++, но сейчас пришлось столкнуться с PHP.
Суть проблемы следующая: есть программа, которая обрабатывает очень большой объем данных. После обработки она должна результаты занести в БД MySQL. Для чего формирует текстовый файл с SQL запросами и по FTP выкладывает на сервер. Дальше программа запускает скрипт, который считывает и выполняет эти запросы по одному.
Проблемма в том, что результат обработки это десятки тысяч запросов типа INSERT и UPDATE. Скрипт успевает выполнить только часть из них, и затем "умрает".
Вообщем вопрос: что сделать что бы скрипт мог выполнятся как угодно долго? Или как еще можно вставить в базу большой объем данных?

Может уже существуют готовые решения?
Заранее спасибо.
244
22 января 2009 года
UAS
2.0K / / 19.07.2006
Ну вообще set_time_limit() функция есть. Но не любой хостер разрешит такое + долгая нагрузка на БД - это тем более хостеру не понравиться. Так что я вижу только одно - разбивать это мно-во sql запросов на части и загонять их не разом, а частями.

ЗЫ: периодически - это значит использовать crontab (для *nix)
860
24 января 2009 года
Abell2000
138 / / 15.01.2003
а как насчет LOAD DATA INFILE ?
или запустить процесс в бэкгроунде
47K
30 января 2009 года
alxander
2 / / 30.01.2009
А как можно запустить такой процесс в бэкграунде (фоновом режиме)? У меня самого такая задача: есть список адресов (>5000 штук) и сканер, обходящий эти адреса ежедневно с целью проверки наличия кода. В процессе работы php-скрипта составляется sql запрос, который в конце работы скрипта импортируется в БД (запросы update).

Проблема в двух местах:
1. Много адресов для проверки
2. Каждая проверка адреса занимает ~3 сек.

Пришел к выводу, что без фонового режима не обойтись, но как его реализовать - не знаю, опыта не было. Может, кто подскажет?
13
30 января 2009 года
RussianSpy
3.0K / / 04.07.2006
функция set_time_limit()

для запуска можно вызвать через консоль или крону составить расписание
в чем проблема-то?
47K
31 января 2009 года
alxander
2 / / 30.01.2009
Ясно, значит, скрипт будет работать как угодно долго, не зависимо от установленного лимита в конфигурации...
Осталось только в консоли запустить несколько копий скрипта в фоновом режиме и будет увеличение скорости обработки в разы.
Только над разраничением адресов из списка на каждый скрипт нужно подумать.
13
31 января 2009 года
RussianSpy
3.0K / / 04.07.2006
Помимо лимита на время выполнения не забудьте еще про лимит памяти
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог