2010-05-26 22 views
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 

回答

0

我已经不知道,真的,但看到这里有没有答案,我会尽力胡乱猜测。

也许

response.headers['content-length'] = len(img.data) 

将帮助?