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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> многопоточность. Thread::Queue, неправильно раздает. 
V
    Опции темы
burakov
Дата 11.4.2013, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Добрый день.
всегда считал, что 

Thread::Queue
это средство, которое позволяет обмениваться данными между потоками 
корректно .

то есть применительно к граберу.
всегда использовал схему (2 года обкатки -- ни одного сбоя).

когда один поток добавляет задание из базы данных

$queue_job -> enqueue ($_); 


а в остальных потоках, происходит работа над этим заданием

while (my $str = $queue_job -> dequeue ()) {
        my $tid = threads -> tid (); $tid_hash {$tid} = 1; 
}

то есть я считал так, что модуль сам "понимает" (я ж не ассемблере все таки smile программирую)
в момент одновременного обращения к нему из потоков 
$queue_job -> dequeue ())

как ему не отдать задание дважды, как "выстроить очередь", потому что в теории возможно же ведь одновременное обращение за заданиями?


***********
сегодня схема дала сбой
то есть задания дублируются.. происходит чехарда.


Вопрос. 
$str = $queue_job -> dequeue ()
не гарантирует построения "нормальной очереди"?
нужно еще что то проверять?


Спасибо.








--------------------
Нотный архив http://libnote.ru скачать ноты бесплатно
PM MAIL   Вверх
burakov
Дата 11.4.2013, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



нашел ошибку. (повторно добавлял просто задание).
хороший модуль.  работает как надо.


--------------------
Нотный архив http://libnote.ru скачать ноты бесплатно
PM MAIL   Вверх
Google
  Дата 26.5.2019, 22:01 (ссылка)  





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


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

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


 




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


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

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