2015-11-17 4 views
1

Как закончить Gevent без использования sys.exit() в этом случае? Мне не нужно заканчивать все элементы в списке, мне просто нужно использовать очередь до тех пор, пока не будет найдена строка.Как убить всех зеленых или закончить цикл «Пока не Queue.empty()»?

tasks = Queue() 
while not tasks.empty(): 
      string = tasks.get() 
      con = validate(string) 
      if con == True: 
       break 

Заявление о приостановлении не работает. Я начинаю Greenlets так:

gevent.spawn(worker) 

Я не могу использовать sys.exit() по той причине, что я хочу итерацию, хотя список и начать новый GEvent экземпляр для каждого объекта.

ответ

0

Я не знаком с питоном, но попробуйте использовать логическое значение в качестве дополнительного условия для вашего времени цикла:

tasks = Queue() 
found = False 
while not found and not tasks.empty(): 
    string = tasks.get() 
    found = validate(string) 
+0

Спасибо! Это действительно решение выйти из цикла. Я все еще ищу решение, как остановить другие зелени. – JohnMayer