优化系统健康评分与缓存监测
This commit is contained in:
@@ -44,8 +44,12 @@ class PermissionCache:
|
||||
if cache_key in self._member_role_cache:
|
||||
cached_role, timestamp = self._member_role_cache[cache_key]
|
||||
if not self._is_expired(timestamp, ttl):
|
||||
from app.core.permission_monitor import get_permission_monitor
|
||||
get_permission_monitor().record_cache_hit("member_roles")
|
||||
return cached_role
|
||||
|
||||
from app.core.permission_monitor import get_permission_monitor
|
||||
get_permission_monitor().record_cache_miss("member_roles")
|
||||
membership = await member_crud.get_member(db, study_id, user_id)
|
||||
role = membership.role_in_study if membership and membership.is_active else None
|
||||
|
||||
@@ -102,6 +106,17 @@ class PermissionCache:
|
||||
self._member_role_cache.clear()
|
||||
|
||||
def get_cache_stats(self) -> dict[str, Any]:
|
||||
now = time.time()
|
||||
self._project_permissions_cache = {
|
||||
key: value
|
||||
for key, value in self._project_permissions_cache.items()
|
||||
if now - value[1] <= self.default_ttl
|
||||
}
|
||||
self._member_role_cache = {
|
||||
key: value
|
||||
for key, value in self._member_role_cache.items()
|
||||
if now - value[1] <= self.default_ttl
|
||||
}
|
||||
return {
|
||||
"project_permissions_count": len(self._project_permissions_cache),
|
||||
"member_role_count": len(self._member_role_cache),
|
||||
|
||||
Reference in New Issue
Block a user