我正在运行带有memcached后端的Django 1.3实例用于缓存层,最近我一直在尝试为应用程序调试数据库的一部分,但每当我将memcached服务器脱机时,我都会得到以下内容错误:
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的内置缓存。
答案 0 :(得分:1)
首先,这不是来自Django的错误,而是来自python-memcached库。 其次我认为这种行为是一致的。如果你配置Django使用memcached并且它关闭,那么它应该抛出错误!假设您的站点在很大程度上依赖于缓存,您还希望尽快知道是否发生了什么事情,并且在几天之后还没有弄清楚您的整个数据库是否已关闭,因为查询太多(例如)。
有多种方法可以定义回退缓存或执行其他解决方法。看看这个类似的问题:Is there a way to ignore Cache errors in Django?