我有一个基于django的http服务器,我使用django.core.cache.backends.memcached.MemcachedCache作为客户端库来访问memcache。我想知道我们是否可以设置超时或某事(比如500ms。),以便对memcached的调用如果无法访问缓存500ms则返回False。我们打电话给DB。有没有这样的设置呢?
答案 0 :(得分:0)
之前没有尝试过,但您可以使用线程并为函数调用缓存设置超时。例如,忽略此链接主体中提供的示例,但请查看Jim Carroll的评论:
http://code.activestate.com/recipes/534115-function-timeout/
适合您可能使用的东西:
from threading import Timer
import thread, time, sys
def timeout():
thread.interrupt_main()
try:
Timer(0.5, timeout).start()
cache.get(stuff)
except:
print "Use a function to grab it from the database!"
我现在没有时间对它进行测试,但我担心的是Django本身是否有线程,如果是的话,是否会打断主线程你真正想要做什么?无论哪种方式,这都是一个潜在的起点。我确实寻找了一个配置选项,允许这样做,什么也没找到。