我正在为Web服务开发一些REST api。 从几天开始,我遇到了一个很大的问题,使我受阻。 如果代码有异常(在开发过程中),则django服务器仅在5/8或10分钟后响应...并发生错误。
要了解发生了什么,我已经使用pycharm在调试中启动了服务器...。然后在等待期间单击暂停。代码在这里循环到python2.7 / SocketServer.py
def _eintr_retry(func, *args):
"""restart a system call interrupted by EINTR"""
while True:
try:
return func(*args)
except (OSError, select.error) as e:
if e.args[0] != errno.EINTR:
raise
print(foo)
我该怎么办?我很绝望!
答案 0 :(得分:0)
有时会在Django调试模式下发生,因为Django会生成一个包含回溯的漂亮页面,并列出每个堆栈帧的所有局部变量的列表。
如果Django模型的for prop in response.css('.grid-item'):
link = prop.css('.property-image a::attr(href)').get()
bedrooms = prop.xpath("normalize-space(.//*[contains(@class,'bedrooms')]/label/following::text())").get()
bathrooms = prop.xpath("normalize-space(.//*[contains(@class,'bathrooms')]/label/following::text())").get()
gar = prop.xpath("normalize-space(.//*[contains(@class,'garages')]/label/following::text())").get()
方法效率低下(由于您使用的是Python 2,因此__str__
,这可能导致Django从数据库加载成千上万个对象以显示回溯。
根据我的经验,这是在Django中异常暂停时间很长的唯一原因。尝试使用__unicode__
进行运行,或检查哪种模型的DEBUG = False
方法无法有效地击中数据库。