2

我正在运行一个带有用于缓存层的 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 最吸引人的部分是,如果 memcache 消失,您的网站在返回之前仍然可以运行(尽管已经瘫痪)。我确实使用 Django 的内置缓存。

4

1 回答 1

1

首先,这不是 Django 的错误,而是 python-memcached 库的错误。其次,我认为这种行为是一致的。如果您将 Django 配置为使用 memcached 并且它出现故障,那么它应该会抛出一个错误!假设您的站点严重依赖缓存,您还想尽快知道是否发生了什么事情,而不是几天后发现您的整个数据库也关闭了,因为那里有太多的查询(例如)。

有一些方法可以定义回退缓存或执行其他解决方法。看看这个类似的问题:有没有办法忽略 Django 中的缓存错误?

于 2012-09-04T09:23:13.767 回答