我正在编写一个使用Tweepy从Twitter获取数据的程序。 Tweepy使用另一个线程,有时该线程抛出异常。但是,我的错误捕获逻辑不能捕获异常,因为它们发生在不同的线程中。有没有办法在不更改线程代码的情况下捕获其他线程引发的异常?
为澄清起见,我需要在Tweepy中使用额外的线程选项,以便流不会阻止程序的其余部分执行。我偶尔会从数据库中获取有关要跟踪哪个Twitter帐户的更新,而在流式传输期间执行此操作的唯一方法是在单独的线程上进行流式传输。
while 1:
# Create twitter stream
try:
# Reconnect to the stream if it was disconnected (or at start)
if reconnect:
reconnect = False
# NEW THREAD CREATED HERE
tweet_stream.filter(follow=twitter_uids, async=True)
# Sleep for sleep_interval before checking for new usernames
time.sleep(sleep_interval)
users_update = get_user_names(twitter_usernames)
# Restart the stream if new users were found in DB
if len(users_update) != 0:
# Disconnect and set flag for stream to be restarted with new usernames
twitter_usernames = users_update
twitter_uids = get_twitter_uids(users_update)
reconnect = True
tweet_stream.disconnect()
tweet_stream._thread.join()
except Exception as e:
# ERROR HANDLING CODE