我通过flup / fastcgi在lighttpd上运行TG2应用程序。 我们正在从MySQL数据库中的BlobFields读取图像(每个~30kb),并通过控制器方法返回具有自定义mime类型的图像。将这些图像缓存在硬盘上没有任何意义,因为它们随着每个请求而变化,我们在数据库中缓存这些图像的唯一原因是创建这些图像非常昂贵,用于创建图像的数据也以纯文本形式出现在网站。
现在问题本身:
当返回这样的图像时,事情变得极其缓慢。代码在贴纸本身上运行完全正常,没有明显的延迟,但是一旦通过fcgi / lighttpd运行,就会发生所描述的现象。
我描述了我的控制器返回我的blob的方法,整个方法在几毫秒内运行,但是当“返回”执行时,整个应用程序挂起大约10秒钟。
我们无法在FCGI上使用PHP重现相同的错误。这似乎只发生在Turbogears或Pylons上。
供您考虑相关的源代码:
@expose(content_type=CUSTOM_CONTENT_TYPE)
def return_img(self, img_id):
""" Return a DB persisted image when requested """
img = model.Images.by_id(img_id) #get image from DB
response.headers['content-type'] = 'image/png'
return img.data # this causes the app to hang for 10 seconds
答案 0 :(得分:0)
我真的不知道,但是看到这里没有答案,我会尝试一下。
也许
response.headers['content-length'] = len(img.data)
会有帮助吗?