Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Время работы скрипта Perl (Максим-статистик)
Author Message
Максим-статистик
Guest





Карма: 388
   поощрить/наказать


PostPosted: Thu May 18, 2006 7:18 pm (написано за 8 минут 44 секунды)
   Post subject: Время работы скрипта Perl
Reply with quote

Всем привет!
Меня зовут Максим. Я занимаюсь статистическими исследованиями в Интернете в интересах неправительственных организаций. У меня есть база данных из 10 000 000 сайтов, обновления в которых я просматриваю и фиксирую. Вообще-то сначало база насчитывала 1000 сайтов и все было прекрасно, а потом решили охват сайтов расширить и столкнулись с неразрешимой для нас проблемой: скрипт Perl, который просматривал начальные страницы сайтов и сравнивал их с базой просто не успевает пройти всю базу. На сервере существует лимит по времени исполнения скрипта - 1,5 минуты. Сервер доходит до какого-то кортежа базы, а потом аварийно заканчивает работу. Сначало мы намеревались атомизировать базу и работать с ее частями, но это оказалось не удобно и вдобавок ко всему сервер не предоставляет возможности работать с Crontab. Переговоры с сисадмином об увеличении времени работы интерпретатора Perl ни к чему не привели. Исходя из этого появляется вопрос, получить ответ на который я надеюсь тут: как можно регулировать время работы скрипта Perl ? Можно ли дать какую-то директиву интерпретатору, как это делается, например, в PHP /ini_set();/, а если можно, то какую. Может вы скажете мне где о ней можно получить информацию? Можно ли решить эту проблему поместив в корневой каталог файл .htaccess, и что в него в этом случае нужно записать? Может существуют некие иные способы решения этой проблемы? Заранее спасибо всем ответившим.
С уважением Максим.
Back to top
Ant
Сотрудник «Лаборатории»



Joined: 17 Jun 2003
Posts: 6840
Карма: 129
   поощрить/наказать


PostPosted: Thu May 18, 2006 10:06 pm (спустя 2 часа 48 минут; написано за 3 минуты 47 секунд)
   Post subject:
Reply with quote

Можно прикинуть, сколько сайтов (оптимально-максимально) возможно обработать в течении 1,5 минуты. Например, скрипт на 100% вероятности обработает 1000 сайтов за 1,5 минуты. Обрабатываем это количество сайтов, пишем во временный файл позицию, на которой остановились и вызываем с помощью exec этот же скрипт. Текущий скрипт завершается, а новый начинает свою работу (читая из временного файла, на какой позиции предыдущая копия скрипта остановилась).

Но вообще, было бы просто здорово иметь cron.
Back to top
View user's profile Send private message Send e-mail
Максим-статистик
Guest





Карма: 388
   поощрить/наказать


PostPosted: Fri May 19, 2006 1:25 pm (спустя 15 часов 18 минут; написано за 8 минут 19 секунд)
   Post subject: А сработает ли?
Reply with quote

Здравствуйте, уважаемый Аnt!
Ant wrote:
Обрабатываем это количество сайтов, пишем во временный файл позицию, на которой остановились и вызываем с помощью exec этот же скрипт. Текущий скрипт завершается, а новый начинает свою работу (читая из временного файла, на какой позиции предыдущая копия скрипта остановилась).
То есть Вы предлагаете использовать функцию /exec();/, передав ей в качестве параметра вызов того же файла, в котором она находится?
Back to top
Ant
Сотрудник «Лаборатории»



Joined: 17 Jun 2003
Posts: 6840
Карма: 129
   поощрить/наказать


PostPosted: Fri May 19, 2006 7:11 pm (спустя 5 часов 45 минут; написано за 1 минуту 54 секунды)
   Post subject:
Reply with quote

Ага. Только я не уверен, что всё будет гладко. Надо просто попробовать. (-:

P.S. Для начал можно просто создать скриптик с sleep(80) и после exec('script.pl') - только смотрите не зациклитесь. Можно, кстати, ещё попробовать использовать fork. Есть ещё потоки. В общем, путей много. А выявить подходящий можно только с помощью эксперимента.
Back to top
View user's profile Send private message Send e-mail
Ant
Сотрудник «Лаборатории»



Joined: 17 Jun 2003
Posts: 6840
Карма: 129
   поощрить/наказать


PostPosted: Fri May 19, 2006 7:13 pm (спустя 1 минуту 35 секунд; написано за 1 минуту 2 секунды)
   Post subject:
Reply with quote

А вообще, по-хорошему, надо пинать админа до тех пор, пока не даст cron. Крон должен быть ну просто по-любому. С ним ваша задача - домашнее задание для 2-го курса.
Back to top
View user's profile Send private message Send e-mail
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 412
   поощрить/наказать


PostPosted: Sun Jun 04, 2006 9:22 am (спустя 15 дней 14 часов 9 минут; написано за 49 секунд)
   Post subject:
Reply with quote

Максим-статистик wrote:
То есть Вы предлагаете использовать функцию /exec();/, передав ей в качестве параметра вызов того же файла, в котором она находится?
Скорее всего, этот фокус не пройдет - лимиты на время выполнения устанавливаются обычно через системный вызов setrlimit, а для него exec - не помеха.
Нужен cron, точно.
Back to top
View user's profile Send private message Send e-mail
Максим-статистик
Guest





Карма: 388
   поощрить/наказать


PostPosted: Mon Jun 05, 2006 9:46 pm (спустя 1 день 12 часов 23 минуты; написано за 33 секунды)
   Post subject:
Reply with quote

Ну тогда точно придется атомизировать базу или искать нового хостера.
В принципе тему можно закрывать.
Back to top
Ant
Сотрудник «Лаборатории»



Joined: 17 Jun 2003
Posts: 6840
Карма: 129
   поощрить/наказать


PostPosted: Mon Jun 05, 2006 10:09 pm (спустя 22 минуты)
   Post subject:
Reply with quote


М

Тема закрыта.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   This topic is locked: you cannot edit posts or make replies. All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You cannot download files in this forum.
XML