Python-等待变量更改
问题内容:
我有一个Python脚本,它打开了Twitter
API的websocket,然后等待。当通过amq将事件传递给脚本时,我需要打开一个新的websocket连接,并在注册新连接后 立即
关闭旧的websocket连接。
看起来像这样:
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)
但这似乎有点混乱。有谁知道实现这一目标的更好方法?
问题答案:
繁忙的循环不是正确的方法,因为它显然浪费了CPU。有一些线程构造可让您传达此类事件。参见例如:http : //docs.python.org/library/threading.html#event-
objects