Files
MoviePilot/app/modules/redis/__init__.py
T

63 lines
1.6 KiB
Python

from typing import Tuple, Union
from app.adapters.cache.redis import RedisHelper
from app.modules import _ModuleBase
from app.runtime.settings import RuntimeSettingsCompat
from app.schemas.types import ModuleType, OtherModulesType
settings = RuntimeSettingsCompat()
class RedisModule(_ModuleBase):
"""
Redis 数据库模块
"""
def init_module(self) -> None:
"""Redis 客户端由缓存 adapter 惰性管理,无需模块级初始化。"""
pass
@staticmethod
def get_name() -> str:
"""返回模块展示名称。"""
return "Redis缓存"
@staticmethod
def get_type() -> ModuleType:
"""
获取模块类型
"""
return ModuleType.Other
@staticmethod
def get_subtype() -> OtherModulesType:
"""
获取模块子类型
"""
return OtherModulesType.Redis
@staticmethod
def get_priority() -> int:
"""
获取模块优先级,数字越小优先级越高,只有同一接口下优先级才生效
"""
return 0
def init_setting(self) -> Tuple[str, Union[str, bool]]:
"""缓存后端由部署配置决定,不声明独立模块开关。"""
pass
def stop(self) -> None:
"""缓存 adapter 负责连接释放,本模块无独立资源。"""
pass
def test(self):
"""
测试模块连接性
"""
if settings.CACHE_BACKEND_TYPE != "redis":
return None
if RedisHelper().test():
return True, ""
return False, "Redis连接失败,请检查配置"