部署在IIS上的DJango应用程序上的Python请求丢失

部署在IIS上的DJango应用程序上的Python请求丢失,python,django,python-3.x,tweepy,Python,Django,Python 3.x,Tweepy,我已经在IIS上部署了DJango应用程序。它使用tweepy获取推文。当我获取历史tweet时,请求丢失,没有记录任何内容,也没有引发异常。我附上了代码片段 注意:当我在调试模式下运行相同的代码时,一切正常 此代码通过id获取每条tweet的状态 def get_tweet(id, api=None): status = [] try: logger.info('retrieve_tweet.get_tweet() invoked.') if

我已经在IIS上部署了DJango应用程序。它使用tweepy获取推文。当我获取历史tweet时,请求丢失,没有记录任何内容,也没有引发异常。我附上了代码片段

注意:当我在调试模式下运行相同的代码时,一切正常

此代码通过id获取每条tweet的状态

def get_tweet(id, api=None):
    status = []
    try:

        logger.info('retrieve_tweet.get_tweet() invoked.')

        if api is None:
            logger.info('get_tweet api none found.')
            CONSUMER_KEY = config.TWITTER_CONSUMER_KEY
            CONSUMER_SECRET = config.TWITTER_CONSUMER_SECRET
            ACCESS_TOKEN = config.TWITTER_ACCESS_TOKEN
            ACCESS_TOKEN_SECRET = config.TWITTER_ACCESS_TOKEN_SECRET

            auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
            auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)

            api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True, retry_count=2,
                            retry_delay=5,
                            retry_errors=[401], timeout=300000)

        status = api.get_status(id, tweet_mode='extended')
        logger.info('retrieve_tweet.get_tweet() end.')
        return status
    except Exception as ex:
        logger.error('Exception in retrieve_tweet.get_tweet(): %s', ex)
        return None
下面的代码从获取的对话中获取父推文:

child_status = get_tweet(id=id, api=api)
logger.info('child_status: %s', child_status)

if child_status:
    status.append(child_status._json)
    in_reply_to_status_id = child_status.in_reply_to_status_id

    while in_reply_to_status_id is not None:
        parent_status = get_tweet(id=child_status.in_reply_to_status_id, api=api)
        logger.info('parent status inside while: %s', parent_status)
        if parent_status:
            status.append(parent_status._json)
            in_reply_to_status_id = parent_status.in_reply_to_status_id
            if in_reply_to_status_id is None:
                logger.info('All the parent tweets are found.')
            else:
                child_status = parent_status
        else:
            in_reply_to_status_id = None

if len(status) > 1:
    status = sorted(status, key=lambda x: x['id'])
else:
    logger.info('no parent tweets found.')
    status = None

logger.info('retrieve_tweet.get_parent_tweet() end.')
下面是日志文件中的日志

[24/Jul/2018 01:05:01] | INFO | [dashboard.analysis.retreive_tweet:68] : retrieve_tweet.get_parent_tweet() invoked.
[24/Jul/2018 01:05:01] | INFO | [dashboard.analysis.retreive_tweet:69] : parent tweet id: 1021160191147094017
[24/Jul/2018 01:05:01] | INFO | [dashboard.analysis.retreive_tweet:40] : retrieve_tweet.get_tweet() invoked.
[24/Jul/2018 01:05:01] | INFO | [dashboard.analysis.retreive_tweet:57] : retrieve_tweet.get_tweet() end.
[24/Jul/2018 01:05:01] | INFO | [dashboard.analysis.retreive_tweet:106] : no parent tweets found.
[24/Jul/2018 01:05:01] | INFO | [dashboard.analysis.retreive_tweet:109] : retrieve_tweet.get_parent_tweet() end.
[24/Jul/2018 01:05:01] | INFO | [dashboard.analysis.retreive_tweet:68] : retrieve_tweet.get_parent_tweet() invoked.
[24/Jul/2018 01:05:01] | INFO | [dashboard.analysis.retreive_tweet:69] : parent tweet id: 1021158630886977538
[24/Jul/2018 01:05:01] | INFO | [dashboard.analysis.retreive_tweet:40] : retrieve_tweet.get_tweet() invoked.

在调用get_tweet()之后,没有日志,抛出500个异常。

你说的“在请求之间”是什么意思?你是如何运行这段代码的?我做了一个api调用,调用这个函数,我检索推文并迭代所有推文,直到我在“回复”中找到“状态”id为“无”。当它在某个迭代之后进行迭代时,它会终止,而不会记录任何异常。但是当我在调试模式下运行相同的代码时,一切都按预期工作@丹尼尔罗斯曼