【发布时间】:2015-09-17 23:30:11
【问题描述】:
我用 memcached 配置了我的 django 应用程序,一切运行顺利。
我正在尝试随着时间的推移填充缓存,并在新数据来自外部 API 时添加到缓存中。以下是我正在做的事情的要点:
主视图
api_query, more_results = apiQuery(**params)
cache_key = "mystring"
cache.set(cache_key, data_list, 600)
if more_results:
t = Thread(target = 'apiMoreResultsQuery', args = (param1, param2, param3))
t.daemon = True
t.start()
更多结果功能
cache_key = "mystring"
my_cache = cache.get(cache_key)
api_query, more_results = apiQuery(**params)
new_cache = my_cache + api_query
cache.set(cache_key, new_cache, 600)
if more_results:
apiMoreResultsQuery(param1, param2, param3)
此方法通过apiMoreResultsQuery 进行多次迭代,但在某些时候缓存返回None 导致整个循环崩溃。我试过增加缓存过期时间,但这并没有改变任何东西。为什么缓存会突然消失?
为了澄清,我在一个不同的线程中运行apiMoreResultsQuery,因为我需要更快地从初始调用返回响应,然后填充完整的数据集,所以我想在响应时保持填充在后台进行还是可以退货的。
【问题讨论】:
标签: python django caching memcached