部署在IIS上的DJango应用程序上的Python请求丢失
我已经在IIS上部署了DJango应用程序。它使用tweepy获取推文。当我获取历史tweet时,请求丢失,没有记录任何内容,也没有引发异常。我附上了代码片段 注意:当我在调试模式下运行相同的代码时,一切正常 此代码通过id获取每条tweet的状态部署在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
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为“无”。当它在某个迭代之后进行迭代时,它会终止,而不会记录任何异常。但是当我在调试模式下运行相同的代码时,一切都按预期工作@丹尼尔罗斯曼