2
我正在爲一個緩存層運行帶memcached後端的Django 1.3實例,最近我一直在試圖調試應用程序的數據庫的一部分,但是每當我使memcached服務器脫機時,出現以下錯誤:爲什麼當Memcached出現故障時Django會失敗?
AttributeError at /joinerysoft/contacts/ajax/all/None/None/
'NoneType' object has no attribute 'sendall'
Request Method: GET
Request URL: http://joinerysoft-directory.co.uk/joinerysoft/contacts/ajax/all/None/None/
Django Version: 1.3.1
Exception Type: AttributeError
Exception Value: 'NoneType' object has no attribute 'sendall'
Exception Location: /usr/lib/python2.7/dist-packages/memcache.py in send_cmd, line 1112
Python Executable: /usr/bin/python
Python Version: 2.7.3
我想的memcached +的Django吸引人的地方是,如果內存緩存中消失,您的網站仍會功能(雖然殘廢),直到它返回。我確實使用Django的內置緩存。
因此它應該完全刪除服務,而不是優雅地退化?在我看來,那就是糟糕的設計。當然你想知道你的memcached服務器全部關閉,並且你只是在DB上運行,但是通過錯誤日誌記錄機制處理不是更好,而不是錯誤地向用戶輸出 – Jharwood
@Jharwood我認爲你總是可以構建一個可以優雅地處理這些錯誤的包裝器。 –
我想你可以 – Jharwood