Вместо этого вы можете использовать поле models.DateTimeField()
. Запишите последний раз, когда они использовались, затем получите самый старый:
class Load_Balancing(models.Model):
...
last_visited = models.DateTimeField(auto_now=True)
...
class Get_Instance(APIView):
def get(self, request):
next_instance = Load_Balancing.objects.all().order_by("last_visited").first() # get the oldest one
next_instance.save() # this will update the last_visited field
...
Если вы хотите получить все экземпляры:
class Get_Instance(APIView):
def get(self, request):
instances = list(Load_Balancing.objects.all().order_by("-last_visited"))
current_instance = instances[-1]
current_instance.save()
data = []
for instance in instances:
data.append({
'instance_name': instance.instance_name,
'is_current': instance == current_instance
})
return Response(data)
Это не обязательно потокобезопасен, но если вам не нужно, этого должно быть достаточно для того, что вы пытаетесь сделать