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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Threads и lwp с https, проблема 
:(
    Опции темы
Валерия
Дата 3.9.2014, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



При использовании потоков и lwp загружая странички с https частенько полностью всё вылетает, я так понимаю что lwp не очень потокобезопастный
Как можно это исправить?

Добавлено через 9 минут и 38 секунд
Если запустить такое, то начинают сильно сыпаться всевозможные ошибки
Код

use threads;
use LWP;

for $i (1..40){
    push @threads, threads->create(\&thr, $i);
}

foreach my $thread (@threads) {
    $thread->join();
}



sub thr {
    $n = shift;
    print "$n started\n";
    while (1){
        $ua = LWP::UserAgent->new();
        $ua->timeout(15);
        $content = $ua->get("https://mail.yandex.ua")->as_string();
        print $n . " " . time() . "\n";
    }
}


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


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


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

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



Цитата(Валерия @  3.9.2014,  20:13 Найти цитируемый пост)
Если запустить такое, то начинают сильно сыпаться всевозможные ошибки

у мя все работает!  smile 

Ты под виндой работаешь?? Если да? то это проблема винды и тредов в нем, а не lwp.  smile 


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


Опытный
**


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

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



Да под виндой
Может есть альтернатива ActivePerl под win в которой нормально будет работать такое?
PM MAIL   Вверх
arto
Дата 3.9.2014, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



AnyEvent::HTTP ?
PM MAIL ICQ   Вверх
infarch
Дата 5.9.2014, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Статья в тему: http://habrahabr.ru/post/234835/

Переделайте пример под работу с сетью и проверьте.
PM MAIL   Вверх
Pfailed
Дата 6.9.2014, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



use Coro  smile

Код

use Coro::LWP;
use Coro::PatchSet;
use Coro;
use LWP;

for $i (1..40){
    push @threads, Coro->new(\&thr, $i);
    $threads[-1]->ready;
}

foreach my $thread (@threads) {
    $thread->join();
}

sub thr {
    $n = shift;
    print "$n started\n";
    while (1){
        $ua = LWP::UserAgent->new();
        $ua->timeout(15);
        $content = $ua->get("https://mail.yandex.ua")->as_string();
        print $n . " " . time() . "\n";
    }
}


Это сообщение отредактировал(а) Pfailed - 6.9.2014, 21:10


--------------------
PM MAIL   Вверх
Pfailed
Дата 6.9.2014, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Кстати "use strict" не пробовали? Использование глобальных переменных в подпрограмме это высший пилотаж.


--------------------
PM MAIL   Вверх
tzirechnoy
Дата 7.9.2014, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата
Использование глобальных переменных в подпрограмме это высший пилотаж.


В мультитредной подпрограмме, что характерно. +1, да, я как-то пропустил вчера это мимо глаз.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


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

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


 




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


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

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