Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 20, 2010 09:51:32

vatezlo
От:
Зарегистрирован: 2010-04-20
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с модулем Queue

Добрый день.
Вот кусок кода моей программы, где используется модуль Queue:

import Queue
....
ipq=Queue.Queue(0)
resq=Queue.Queue(0)
exit_event_w=Event()
exit_event_d=Event()


class WorkerThread(threading.Thread):
def run(self):
while not exit_event_w.isSet():
try:
ip=ipq.get()
res=check_and_get(ip)
resq.put(ip,res)
ipq.task_done()
except ipq.Empty():
pass

class DataThread(threading.Thread):
def run(self):
while not exit_event_d.isSet():
try:
res_string=''
r=open('./result','a')
for res_element in resq.get():
res_string=res_string+str(res_element)
res_string=res_string+'\n'
r.write(res_string)
r.close
resq.task_done()
except resq.Empty():
pass
....
На выходе получаю группу (по кол-ву тредов) сообщений:

Exception in thread Thread-30:
Traceback (most recent call last):
File "/usr/lib/python2.6/threading.py", line 525, in __bootstrap_inner
self.run()
File "./threading_snmp_get.py", line 67, in run
except ipq.Empty():
AttributeError: Queue instance has no attribute 'Empty'
В чём может быть дело?
Заранее спасибо!



Офлайн

#2 Апрель 20, 2010 10:19:57

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Проблема с модулем Queue

Должно быть так

except Queue.Empty:
Empty - это исключение описанное в модуле Queue



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#3 Апрель 20, 2010 12:03:32

vatezlo
От:
Зарегистрирован: 2010-04-20
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с модулем Queue

Спасибо.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version