Python日志调用无限执行

2024-04-19 05:40:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我们在应用程序中看到了一些奇怪的行为,其中log语句被无限执行。这个问题发生在本地和生产系统上。我们的堆栈是一个简单的uWSGI/Django堆栈,所以它似乎与uWSGI或whisky都没有关系。你知道吗

我们一直无法重现这个问题,有时几天过去了,问题却没有抬起它丑陋的头,但总有一个非常清晰的模式:

logger.info('Beginning download')
response = requests.get(url, stream=True)
logger.info('Downloading %s' % url)

在我们的日志中:

Beginning download
Downloading http://XXX
Downloading http://XXX
Downloading http://XXX
Downloading http://XXX
Downloading http://XXX
Downloading http://XXX
Downloading http://XXX
Downloading http://XXX

除非你用手干掉威士忌或者uWSGI harakiri's

无论您使用requests.getrequests.post还是其他方法,这似乎都无关紧要。你知道吗

实际的网络请求似乎没有执行N次。只需将日志写入文件或stdout无限长的时间。你知道吗

编辑这里是Context中的源代码

它也发生在代码的其他部分,总是在调用请求库之后。不管我们叫哪个网址。我们与S3、各种社交媒体api进行接口,这种行为在所有类型的url中都表现出来。你知道吗


Tags: infolog应用程序httpurlget堆栈download