我有以下代码:
def gen_stream():
stream = twitter.STREAMING_API(key=1, payload={})
for tweet in stream.run():
yield tweet
def pipeline():
for tweet in gen_stream():
tweet_id=tweet.get('id')
print(tweet_id)
if __name__ == '__main__':
pipeline()
我怎样才能运行1分钟的代码。 我尝试过使用
if __name__ == '__main__':
endtime=time.time()+60*1
while time.time()<endtime:
pipeline()
但是此代码在结束时间后仍会产生推文ID。如何在指定时间内运行pipeline
?
P.S gen_stream()
工作正常。
答案 0 :(得分:0)
问题是代码进入pipeline
函数并永远在其中循环。
让pipeline
接受endtime
参数
def gen_stream():
stream = twitter.STREAMING_API(key=1, payload={})
for tweet in stream.run():
yield tweet
def pipeline(endtime):
for tweet in gen_stream():
if time.time() > endtime:
break
tweet_id=tweet.get('id')
print(tweet_id)
if __name__ == '__main__':
endtime=time.time()+60*1
pipeline(endtime)