1
我的lighttpd上通过flup/FastCGI的运行TG2应用。 我们正在读从BlobFields图像(〜30kb的每个)在MySQL数据库,并通过控制器的方法返回与一个自定义的MIME类型的那些图像。因为他们每个请求更改硬盘上缓存这些图像是没有意义的,我们在数据库缓存这些的唯一原因是,创造这些图像是相当昂贵的,并用于创建图像的数据也存在于对纯文本网站。返回数据库中的BLOB/FCGI/Lighttpd的极其缓慢
我们本身的问题:
当返回这样的图像,事情就变得极为缓慢。代码运行完全正常,没有明显的延迟,但是一旦它通过fcgi/lighttpd运行,所描述的现象就会发生。
我异型我控制器返回我的斑点的方法,以及整个方法在几毫秒运行,但是当“回归”执行,整个应用程序挂起约10秒。
我们不能用PHP重现上FCGI同样的错误。这似乎只发生在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