我正在閱讀來自Twitter Streaming API的推文。連接到API後,我得到一個生成器。如何在某個特定時間退出發電機?
我正在循環播放收到的每條推文,但是我想在18PM退出迭代器。收到每條推文後,我會檢查它是否晚於指定的時間戳並停止。
問題是我沒有經常收到推文。所以,我可以在17:50收到一個,下一個在19PM。那時候我會發現時間已過,我需要停下來。
有沒有辦法在18PM時強制停止?
這裏是我的代碼的高級視圖:
def getStream(tweet_iter):
for tweet in tweet_iter:
#do stuff
if time_has_passed():
return
tweet_iter = ConnectAndGetStream()
getStream(tweet_iter)
注意:遵循PEP 8(getStream應該是get_stream,正式推薦)是個好主意。 – EOL
爲什麼你的腳本不能在六點時停止運行? – jonrsharpe
我猜從tweet生成器中獲得yieldvalue的時間是動態的,所以您必須在某種超時時間內包裝下一個() - 調用以騰出空間來檢查它是什麼時間。請參閱http://stackoverflow.com/questions/492519/timeout-on-a-function-call – Moberg