我的 Django 应用程序配置了 memcached,一切都运行顺利。
我试图随着时间的推移填充缓存,并在新数据从外部 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
在一个不同的线程中,因为我需要更快地从初始调用返回响应,然后填充完整的数据集,所以我想在仍然可以返回响应的同时保持填充在后台进行。