【发布时间】:2015-10-15 06:50:15
【问题描述】:
如何更改 Django 中Memcached/Elasticache caching backend 的检索超时?
我正在使用 Amazon 的 Elasticache 来缓存 Django 中的内容,我经常看到如下错误:
File "/usr/local/myproject/.env/lib/python2.7/site-packages/django/template/defaulttags.py", line 285, in render
return nodelist.render(context)
File "/usr/local/myproject/.env/lib/python2.7/site-packages/django/template/base.py", line 830, in render
bit = self.render_node(node, context)
File "/usr/local/myproject/.env/lib/python2.7/site-packages/django/template/base.py", line 844, in render_node
return node.render(context)
File "/usr/local/myproject/.env/lib/python2.7/site-packages/django/templatetags/static.py", line 109, in render
url = self.url(context)
File "/usr/local/myproject/.env/lib/python2.7/site-packages/django/contrib/staticfiles/templatetags/staticfiles.py", line 12, in url
return staticfiles_storage.url(path)
File "/usr/local/myproject/.env/lib/python2.7/site-packages/django/contrib/staticfiles/storage.py", line 136, in url
hashed_name = self.cache.get(cache_key)
File "/usr/local/myproject/.env/lib/python2.7/site-packages/django/core/cache/backends/memcached.py", line 64, in get
val = self._cache.get(key)
Error: error 31 from memcached_get(myproject:1:staticfiles:27e4bc0): A TIMEOUT OCCURRED
我尝试增加 Elasticache 集群中的节点数量,但没有效果。我的下一个想法是增加 memcached 检索的超时时间,但 Django docs 似乎没有为此提供选项。
有一个“TIMEOUT”选项,但这似乎定义了内容过期的默认时间,而不是对memcached服务器的HTTP请求的超时时间。
【问题讨论】:
-
这真的是对 memcached 服务器的 HTTP 请求的超时,还是可能是 memcached 服务器的内部超时?
标签: python django caching memcached amazon-elasticache