Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 30, 2012 11:53:11

raph4ik
Зарегистрирован: 2012-04-22
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

работа с очередью Queue

Задача в следующем. Нужно получать данные по сети, подключений м.б. одновременно некоторое количество(не важно).
Никаких особых наворотов, сделал по образу и подобию из этой статьи
http://keysolutions.ru/articles/osnovy-raboty-s-potokami-v-python с использованием очереди (Пулы потоков (pooling threads))
Все прекрасно работает, но до тех пор, пока не пришла идея грамотно выключать сервер.

Вопрос в следующем:
Как грамотно выйти из этого цикла

[code python]
while True:
clientPool.put(server.accept())
[/code]
При запуске у меня курсор висит на этой строке clientPool.put(server.accept()) и на следующую строку не переходит.
Вполне возможно, нужно искать другие способы реализации данного цикла, но пока я не могу понять в каку сторону капнуть

P.S.: я пока только изучаю Python, поэтому м.б. чего-то просто не знаю или недочитал

Заранее спасибо

Офлайн

#2 Дек. 30, 2012 16:43:24

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

работа с очередью Queue

1) Можно самому подключится к серверу, что-б разблокировать его
2) Прервать сигналами: http://docs.python.org/2/library/signal.html#example
3) Использовать неблокирующие сокеты

Есть ещё несколько извращенских способов, но эти получше.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version