Python - Ожидание изменения переменной

У меня есть сценарий Python, который открывает веб-сокет для API Twitter и затем ждет. Когда событие передается в сценарий через amq, мне нужно открыть новое соединение с веб-сокетом и немедленно закрыть старое, как только новое соединение будет зарегистрировано.

Это выглядит примерно так:

stream = TwitterStream()
stream.start()

for message in broker.listen():
    if message:
        new_stream = TwitterStream()
        # need to close the old connection as soon as the 
        # new one connects here somehow
        stream = new_stream()

Я пытаюсь понять, как установить «обратный вызов», чтобы уведомить мой сценарий о том, когда будет установлено новое соединение. В классе TwitterStream есть логическая переменная is_running, на которую я могу ссылаться, поэтому я подумал, возможно, примерно так:

while not new_stream.is_running:
    time.sleep(1)

Но это кажется немного запутанным. Кто-нибудь знает лучший способ добиться этого?

5
задан Hanpan 20 October 2011 в 13:10
поделиться