如何处理Tweepy中的线程错误

时间:2018-07-08 08:35:40

标签: python multithreading tweepy

我正在编写一个使用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

0 个答案:

没有答案