Скрипт требует много времени
Вот такая проблема: есть скриптик на Perl'е, который довольно долго выполняется (анализирует БД и пишет в Excel). Сервер не дожидается, пока скрипт отработает, а на ~10ой минуте просто убивает процесс.
Как можно сделать так, чтобы скрипт нормально отработал?
Может быть, можно как-нибудь запускать скрипт от имени другого пользователя?
Либо как изменить лимит времени на выполнение скрипта?
Заранее спасибо!
Доброе время суток!
Вот такая проблема: есть скриптик на Perl'е, который довольно долго выполняется (анализирует БД и пишет в Excel). Сервер не дожидается, пока скрипт отработает, а на ~10ой минуте просто убивает процесс.
Как можно сделать так, чтобы скрипт нормально отработал?
Может быть, можно как-нибудь запускать скрипт от имени другого пользователя?
Либо как изменить лимит времени на выполнение скрипта?
Заранее спасибо!
А что можно делать так долго, чтобы на 10й минуте timeout был?
А что можно делать так долго, чтобы на 10й минуте timeout был?
Читать из MySQL и писать в Excel довольно много значений + кое-куда формулы дописывать...
Spreadsheet-WriteExcel довольно медленно работает, да и база не маленькая...
Читать из MySQL и писать в Excel довольно много значений + кое-куда формулы дописывать...
Spreadsheet-WriteExcel довольно медленно работает, да и база не маленькая...
А можно привести количество таблиц и полей, по которым делается выбор свыше десяти минут?
Хотя если бы все это дело было на PHP я бф сказал как установить лимит. а в перл не знаю:(
Но в свойсвах сервера это довольно таки не сложно поменять... Скажи главное какой..
Какой сервер?
Хотя если бы все это дело было на PHP я бф сказал как установить лимит. а в перл не знаю:(
Но в свойсвах сервера это довольно таки не сложно поменять... Скажи главное какой..
А в два прихода если? Например если это из базы и скидываешь построчно или из массива, то прервать наполовину, записать номер и через несколько секунд начать с той позиции? Это всего лишь предположение.
Или второй вариант, сделать кеш (ну например хранить серизованый объект в нем), и дергать данные из этого кеша.
А можно привести количество таблиц и полей, по которым делается выбор свыше десяти минут?
Можно: 57 таблиц. Из каждой выбирается по 209 строк (каждый день увеличивается на одно в каждой талице). Строка содержит 4 поля. Они анализируются и, в зависимости от результата, еще 4 значения пересчитываются. Все это дело записывается в Excel...
Какой сервер?
Хотя если бы все это дело было на PHP я бф сказал как установить лимит. а в перл не знаю
Но в свойсвах сервера это довольно таки не сложно поменять... Скажи главное какой..
Celeron 2.6, 256DDR, 80 Гб винт 7200 об 8 мб буфер.
ОС: Linux Mandrake 10.1
Сервер предназначен лишь для обработки такой базы....
А в два прихода если? Например если это из базы и скидываешь построчно или из массива, то прервать наполовину, записать номер и через несколько секунд начать с той позиции? Это всего лишь предположение.
Основное время тратиться на анализ выбранных данных и запись в Excel. Прервать запись не могу, поскольку дописывать в файл проблематично...
57 таблиц. Из каждой выбирается по 209 строк (каждый день увеличивается на одно в каждой талице). Строка содержит 4 поля. Они анализируются и, в зависимости от результата, еще 4 значения пересчитываются. Все это дело записывается в Excel...
Что-то здесь не так. Уж больно долго всё происходит...