mirror of
https://github.com/lemeow125/Borrowing-TrackerBackend.git
synced 2024-11-16 22:09:27 +08:00
Add caching to equipment instance viewset
This commit is contained in:
parent
b0b1f4db86
commit
2e9918f12a
5 changed files with 13 additions and 10 deletions
|
@ -29,7 +29,8 @@ services:
|
|||
- "11211:11211"
|
||||
entrypoint:
|
||||
- memcached
|
||||
- -m 64
|
||||
- -m 128
|
||||
- -I 10m
|
||||
|
||||
postgres:
|
||||
image: postgres
|
||||
|
|
|
@ -49,7 +49,8 @@ class EquipmentInstance(models.Model):
|
|||
return f'{self.equipment.name}'
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
cache.delete('equipments')
|
||||
cache.delete('available_equipment_instances')
|
||||
cache.delete('equipment_instances')
|
||||
return super().save(*args, **kwargs)
|
||||
|
||||
|
||||
|
|
|
@ -67,6 +67,14 @@ class EquipmentInstanceViewSet(viewsets.ModelViewSet):
|
|||
serializer_class = serializers.EquipmentInstanceSerializer
|
||||
queryset = EquipmentInstance.objects.all().order_by('id')
|
||||
|
||||
def get_queryset(self):
|
||||
key = 'equipment_instances'
|
||||
queryset = cache.get(key)
|
||||
if not queryset:
|
||||
queryset = super().get_queryset()
|
||||
cache.set(key, queryset, timeout=60*60*24)
|
||||
return queryset
|
||||
|
||||
|
||||
class AvailableEquipmentInstanceViewSet(generics.ListAPIView):
|
||||
if (not DEBUG):
|
||||
|
@ -97,7 +105,7 @@ class AvailableEquipmentInstanceViewSet(generics.ListAPIView):
|
|||
queryset = EquipmentInstance.objects.exclude(
|
||||
id__in=non_finalized_equipments.values_list('id', flat=True)
|
||||
)
|
||||
cache.set(key, list(queryset), timeout=60*60*24)
|
||||
cache.set(key, queryset, timeout=60*60*24)
|
||||
|
||||
return queryset.prefetch_related('equipment')
|
||||
|
||||
|
|
|
@ -1301,9 +1301,6 @@ components:
|
|||
type: string
|
||||
format: date-time
|
||||
readOnly: true
|
||||
last_updated_by:
|
||||
type: string
|
||||
readOnly: true
|
||||
date_added:
|
||||
type: string
|
||||
format: date-time
|
||||
|
@ -1315,7 +1312,6 @@ components:
|
|||
- equipment_name
|
||||
- id
|
||||
- last_updated
|
||||
- last_updated_by
|
||||
- status
|
||||
EquipmentInstanceLog:
|
||||
type: object
|
||||
|
@ -1560,9 +1556,6 @@ components:
|
|||
type: string
|
||||
format: date-time
|
||||
readOnly: true
|
||||
last_updated_by:
|
||||
type: string
|
||||
readOnly: true
|
||||
date_added:
|
||||
type: string
|
||||
format: date-time
|
||||
|
|
Loading…
Reference in a new issue