django中使用celery
celery中要使用djagno的东西,才要加这句话
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "luffy_api.settings.dev")加载django的配置文件,,将app加入到环境变量中
接口缓存
当一个接口是去数据库取东西,返回给前端,比如图片,等,每个人访问都要去数据库中查,就会使数据库访问过载。
解决方法:可以将所要查询的资源放在缓存中,这样下个人查询直接在缓存中拿,大大的提高了访问量
写了一个装饰器
from django.core.cache import cache #django中的缓存
from luffy_api.utils.common_response import APIResponse
#封装的response 可以看我之前的博客封装的response
#增加缓存装饰器
def add_cache(hour):
def jsh(*args,**kwargs):
data = cache.get('check_banner')
if not data:
res = hour(*args, **kwargs)
data = res.data.get('data')
cache.set('check_banner', data)
return APIResponse(data=data)
return jsh
但是又会产生一个问题,缓存和数据库中的数据不一致
# 双写一致性问题:缓存数据和数据库数据不一致了
-写入数据库,删除缓存
-写入数据库,更新缓存
-定时更新缓存
这里采用定时更新缓存:文章来源:https://www.toymoban.com/news/detail-519020.html
利用异步框架celery的定时任务,对缓存实时更新文章来源地址https://www.toymoban.com/news/detail-519020.html
到了这里,关于django中使用celery和接口缓存的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!