Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скрипт сам завершает работу 
:(
    Опции темы
winspice
Дата 22.4.2014, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 22.4.2014

Репутация: нет
Всего: нет



Скрипт многопоточный, когда запускаешь его с прокси, то всё нормально ... ставь хоть 150 потоков. А когда запускаешь без, и ставишь потоков 10 начинает просто жрать память и поток завершает работу. Я вот не могу понять из-за чего такое?
Бывает что работает , работает и сам завершит работу. Можно как-нибудь узнать из-за чего такое происходит ? ... 
PM MAIL   Вверх
Bulat
Дата 22.4.2014, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



Можно!  smile Чем больше информации от вас - тем больше мыслей и соображений!  smile 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
winspice
Дата 23.4.2014, 00:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 22.4.2014

Репутация: нет
Всего: нет



Это происходит в любом скрипте где используется многопоточность.  (Это я про, то что жрет все  12гб при 10 потоках) и бывает не понятно почему еще сам завершает работу, даже когда идет работа с прокси и с памятью всё нормально.

Код

$trl[$_] = threads->create(\&main) for 0..$threads - 1;
$_->join for @trl;



sub main
{

if ($use_proxy){ while(!($request = proxy($browser,$_))){} }

open (A, '>>./file/base_new.txt');

    while (@base)
    {
        my $murl;    
        {lock(@base); ($murl) = shift @base;}
        
AGAIN:        

            cout("thr $_: - check: $murl");
        
            $request = $browser->get("1")->as_string;
            #record('test.html',$request);
            
            if ($request !~ /1/)
            {
                cout("thr $_: [!] bad proxy $murl");
                if ($use_proxy){ while(!($request = proxy($browser,$_))){} }
                goto AGAIN;
            }
            
            if ($request =~ /1/)
            {
                my $encoded = $1;
                my $decoded = $uri->decode($encoded);
                
                if ($decoded =~ /1/)
                {
                                      flock A, LOCK_EX;
                    cout ($1);
                    print A "$1\n";
                    flock A, LOCK_UN;
                    $amout++;
                }
            }
    }
}

close A;

PM MAIL   Вверх
Bulat
Дата 23.4.2014, 06:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



winspice, а сообщения об ошибках какие-нить вообще есть, может варнинги??


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
noize
Дата 23.4.2014, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


5.18.2
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 10.7.2010
Где: СПб

Репутация: 3
Всего: 3



вместо goto AGAIN используйте лучше next AGAIN или redo AGAIN. Потомки будут вам благодарны)
PM MAIL   Вверх
winspice
Дата 23.4.2014, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 22.4.2014

Репутация: нет
Всего: нет



Цитата(noize @ 23.4.2014,  09:24)
вместо goto AGAIN используйте лучше next AGAIN или redo AGAIN. Потомки будут вам благодарны)

Хорошо, спасибо smile)

Проскакивает вот такое 
Thread 42 terminated abnormally: Can't locate object method "_uric_escape" via p
ackage "URI::SUPER" at C:/Perl64/lib/URI.pm line 81.
А так происходит, что никакая страница не открывается и начинает жрать память и выдает 
cout("thr $_: [!] bad proxy $murl"); 
Сайт 100% не блочит.
PM MAIL   Вверх
Bulat
Дата 23.4.2014, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



Цитата(winspice @  23.4.2014,  11:30 Найти цитируемый пост)
Thread 42 terminated abnormally: Can't locate object method "_uric_escape" via package "URI::SUPER" at C:/Perl64/lib/URI.pm line 81.

ну как минимум одна бага на лицо!   smile 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
winspice
Дата 23.4.2014, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 22.4.2014

Репутация: нет
Всего: нет



И как от неё избавиться smile
PM MAIL   Вверх
Bulat
Дата 23.4.2014, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



Цитата(winspice @  23.4.2014,  12:41 Найти цитируемый пост)
И как от неё избавиться

А по самому сообщению догадаться в чем причина??  smile 

Цитата(winspice @  23.4.2014,  11:30 Найти цитируемый пост)
Can't locate object method

Обращение не к существующему методу объекта, в следствии происходит
Цитата(winspice @  23.4.2014,  11:30 Найти цитируемый пост)
Thread 42 terminated abnormally


Какая ось и какая версия интерпретатора?? И я так полагаю 64-х битная архитектура??



--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
tzirechnoy
Дата 23.4.2014, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: нет
Всего: 16



Ваш код, по очевидным причинам, не запускается -- и, например я, дажэ отдалённо не могу представить, что он должэн делать.
PM MAIL   Вверх
noize
Дата 23.4.2014, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


5.18.2
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 10.7.2010
Где: СПб

Репутация: 3
Всего: 3



ковырните исходник URI, посмотрите, где вызывается метод "_uric_escape"
Как вариант, стоит обновить все модули, участвующие в работе. Ну и может быть дело в самом виндовом интерпретаторе. Попробуйте поставить другой или проверьте работу на линуксовой машине.
PM MAIL   Вверх
winspice
Дата 23.4.2014, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 22.4.2014

Репутация: нет
Всего: нет



Цитата(Bulat @ 23.4.2014,  12:49)
Цитата(winspice @  23.4.2014,  12:41 Найти цитируемый пост)
И как от неё избавиться

А по самому сообщению догадаться в чем причина??  smile 

Цитата(winspice @  23.4.2014,  11:30 Найти цитируемый пост)
Can't locate object method

Обращение не к существующему методу объекта, в следствии происходит
Цитата(winspice @  23.4.2014,  11:30 Найти цитируемый пост)
Thread 42 terminated abnormally


Какая ось и какая версия интерпретатора?? И я так полагаю 64-х битная архитектура??

This is perl 5, version 16, subversion 1 (v5.16.1) built for MSWin32-x64-multi-thread
PM MAIL   Вверх
Bulat
Дата 23.4.2014, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



Цитата(winspice @  23.4.2014,  15:08 Найти цитируемый пост)
This is perl 5, version 16, subversion 1 (v5.16.1) built for MSWin32-x64-multi-thread 

Ну тут я тебе не особый помошник, венды под рукой нету, как впрочем и версии интерпретатора 5.16

Могу лишь дать пару советов.
1. Попробуй поискать на репозитариях последнюю версию модуля URI под свою версию интерпретатора, то бишь 5.16 и залить к себе на машину - она мож уже попатченная будет.
Ежели бага не попатчена
2. Попробуй установить версию интерпретатора 5.14 - ее библиотеки наверно постабильнее будет.
Если манипуляции с версиями интерпретатора и модулями с репозитариев не дадут результата:
3. Лезь в сам код модуля URI и правь багу самостоятельно!

Больше ничего посоветовать не могу!  smile 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
winspice
Дата 23.4.2014, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 22.4.2014

Репутация: нет
Всего: нет



Цитата(Bulat @ 23.4.2014,  15:22)
Цитата(winspice @  23.4.2014,  15:08 Найти цитируемый пост)
This is perl 5, version 16, subversion 1 (v5.16.1) built for MSWin32-x64-multi-thread 

Ну тут я тебе не особый помошник, венды под рукой нету, как впрочем и версии интерпретатора 5.16

Могу лишь дать пару советов.
1. Попробуй поискать на репозитариях последнюю версию модуля URI под свою версию интерпретатора, то бишь 5.16 и залить к себе на машину - она мож уже попатченная будет.
Ежели бага не попатчена
2. Попробуй установить версию интерпретатора 5.14 - ее библиотеки наверно постабильнее будет.
Если манипуляции с версиями интерпретатора и модулями с репозитариев не дадут результата:
3. Лезь в сам код модуля URI и правь багу самостоятельно!

Больше ничего посоветовать не могу!  smile

Всем спасибо. Буду разбираться.
PM MAIL   Вверх
GoodBoy
Дата 24.4.2014, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: 2
Всего: 83



winspice, я бы вам посоветовал, для начала, вообще избавиться от переходов по меткам... Честно говоря, последний раз такое видел на Бейсике, лет 20 назад. А на Перле вообще никогда не использовал.


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0564 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.