2010-05-26 71 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) 

將幫助?