forked from erp-dev/erp
feat: added cache to plate order list api
This commit is contained in:
@@ -10,6 +10,8 @@ from rest_framework.permissions import DjangoModelPermissions
|
|||||||
from rest_framework.parsers import MultiPartParser, FormParser, JSONParser
|
from rest_framework.parsers import MultiPartParser, FormParser, JSONParser
|
||||||
from django.db.models import CharField, Prefetch
|
from django.db.models import CharField, Prefetch
|
||||||
from django.db.models.functions import Cast, Coalesce
|
from django.db.models.functions import Cast, Coalesce
|
||||||
|
from django.views.decorators.cache import cache_page
|
||||||
|
from django.utils.decorators import method_decorator
|
||||||
from django_filters.rest_framework import DjangoFilterBackend
|
from django_filters.rest_framework import DjangoFilterBackend
|
||||||
from django_filters import rest_framework as django_filters
|
from django_filters import rest_framework as django_filters
|
||||||
from django_filters import IsoDateTimeFilter
|
from django_filters import IsoDateTimeFilter
|
||||||
@@ -80,6 +82,7 @@ class PrintingOrderFilterSet(django_filters.FilterSet):
|
|||||||
fields = ['customer', 'is_urgent', 'is_fabric_received', 'is_invalid']
|
fields = ['customer', 'is_urgent', 'is_fabric_received', 'is_invalid']
|
||||||
|
|
||||||
|
|
||||||
|
@method_decorator(cache_page(10), name='list')
|
||||||
class PrintingOrderViewSet(viewsets.ModelViewSet):
|
class PrintingOrderViewSet(viewsets.ModelViewSet):
|
||||||
"""
|
"""
|
||||||
印染订单 ViewSet
|
印染订单 ViewSet
|
||||||
|
|||||||
@@ -201,6 +201,32 @@ DATABASES = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Cache configuration
|
||||||
|
# https://docs.djangoproject.com/en/5.2/topics/cache/
|
||||||
|
# Django 5.x 内置 Redis 缓存后端,使用 redis 包(已安装)
|
||||||
|
# 容器内默认使用 redis://redis:6379/0,本地开发可使用 redis://localhost:6379/0
|
||||||
|
CACHES = {
|
||||||
|
'default': {
|
||||||
|
'BACKEND': 'django.core.cache.backends.redis.RedisCache',
|
||||||
|
'LOCATION': env(
|
||||||
|
'CACHE_URL',
|
||||||
|
default='redis://redis:6379/0', # 容器内默认地址
|
||||||
|
),
|
||||||
|
'OPTIONS': {
|
||||||
|
# Redis 连接选项
|
||||||
|
'socket_connect_timeout': 5, # 连接超时(秒)
|
||||||
|
'socket_timeout': 5, # 操作超时(秒)
|
||||||
|
'retry_on_timeout': True, # 超时后重试
|
||||||
|
'health_check_interval': 30, # 健康检查间隔(秒)
|
||||||
|
},
|
||||||
|
# 键前缀,避免不同项目/环境之间的键冲突
|
||||||
|
'KEY_PREFIX': env('CACHE_KEY_PREFIX', default='flower'),
|
||||||
|
# 默认过期时间(秒),None 表示永不过期(由具体使用场景决定)
|
||||||
|
'TIMEOUT': env.int('CACHE_DEFAULT_TIMEOUT', default=300), # 默认 5 分钟
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# Password validation
|
# Password validation
|
||||||
# https://docs.djangoproject.com/en/5.2/ref/settings/#auth-password-validators
|
# https://docs.djangoproject.com/en/5.2/ref/settings/#auth-password-validators
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user