From 84c7728d00e20bab8dc18a06aba42c956d652b3e Mon Sep 17 00:00:00 2001 From: shaohuzhang1 <80892890+shaohuzhang1@users.noreply.github.com> Date: Mon, 20 May 2024 20:21:45 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A8=A1=E5=9E=8B=E5=90=8E,=E5=8E=86?= =?UTF-8?q?=E5=8F=B2=E5=AF=B9=E8=AF=9D=E6=9C=AA=E4=BD=BF=E7=94=A8=E6=9C=80?= =?UTF-8?q?=E6=96=B0=E6=A8=A1=E5=9E=8B=20(#487)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serializers/application_serializers.py | 3 ++- apps/common/cache/mem_cache.py | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/apps/application/serializers/application_serializers.py b/apps/application/serializers/application_serializers.py index 1827c5eb9..aba6e3f7a 100644 --- a/apps/application/serializers/application_serializers.py +++ b/apps/application/serializers/application_serializers.py @@ -41,7 +41,7 @@ from setting.serializers.provider_serializers import ModelSerializer from smartdoc.conf import PROJECT_DIR token_cache = cache.caches['token_cache'] -chat_cache = cache.caches['chat_cache'] +chat_cache = cache.caches['model_cache'] class ModelDatasetAssociation(serializers.Serializer): @@ -532,6 +532,7 @@ class ApplicationSerializer(serializers.Serializer): QuerySet(ApplicationDatasetMapping).bulk_create( [ApplicationDatasetMapping(application_id=application_id, dataset_id=dataset_id) for dataset_id in dataset_id_list]) if len(dataset_id_list) > 0 else None + chat_cache.clear_by_application_id(application_id) return self.one(with_valid=False) def list_dataset(self, with_valid=True): diff --git a/apps/common/cache/mem_cache.py b/apps/common/cache/mem_cache.py index 9bb6c45ba..86a3ce040 100644 --- a/apps/common/cache/mem_cache.py +++ b/apps/common/cache/mem_cache.py @@ -29,3 +29,15 @@ class MemCache(LocMemCache): pickled = self._cache[key] self._cache.move_to_end(key, last=False) return pickled + + def clear_by_application_id(self, application_id): + delete_keys = [] + for key in self._cache.keys(): + value = self._cache.get(key) + if (hasattr(value, + 'application') and value.application is not None and value.application.id is not None and + str( + value.application.id) == application_id): + delete_keys.append(key) + for key in delete_keys: + self._delete(key)