我正在处理django应用程序。申请的主要任务是提出建议,例如:“我今天应该出去吗?”只有一个端点可以得到建议,例如example.com/。
提供这一建议的主要逻辑是:
如果两个用户试图在同一日期获取数据,那么UserTask查询将是不同的。但是天气预报查询任务将是相同的。如果我使用基于视图的django缓存,那么将为每个用户执行天气预报查询。但是,我希望在同一日期缓存所有用户的天气查询数据。它可以通过为天气创建不同的视图来查看实现。但是我不想用另一个端点来描述天气。
Django缓存集-get方法可用于此任务。但是,这种方式是完成这类任务的最佳方式吗?在我的示例中,我根据日期使用了一个简单的天气计算查询。但是,这种技术对复杂查询有好处吗?
发布于 2019-09-22 14:19:01
正如您所说,缓存集-获取是您的解决方案。但请注意这两件事:
假设您希望缓存每天的天气,设置过期时间+24小时(缓存不会很快过期) weather_2019_09_22
我认为创建一个实用程序类是非常好的(类似于此,这是一个伪代码)。
class WeatherCache:
def get(self):
date = today()
if forecast for date in cache:
return forecast
get forecast for date
insert forecast into cache
return forecast
另一个想法可以是简单地创建一个模型,并将预测放在那里,好的一点是你将保持预测的历史。也许它对以后的查询是有用的(而且这个表不会变得太大,所以您不需要担心它)
https://stackoverflow.com/questions/58047916
复制相似问题