2024-08-23 11:17:01 +08:00
|
|
|
from abc import ABC, abstractmethod
|
|
|
|
|
from datetime import timedelta
|
2024-11-27 14:54:54 -08:00
|
|
|
from typing import Any, Union
|
2024-08-23 11:17:01 +08:00
|
|
|
|
2024-11-14 12:05:47 -08:00
|
|
|
CACHE_EXPIRE_TIME = timedelta(weeks=4)
|
2024-08-23 11:17:01 +08:00
|
|
|
MAX_CACHE_ITEM = 1000
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class BaseCache(ABC):
|
|
|
|
|
@abstractmethod
|
2024-11-27 14:54:54 -08:00
|
|
|
async def set(self, key: str, value: Any, ex: Union[int, timedelta, None] = CACHE_EXPIRE_TIME) -> None:
|
2024-08-23 11:17:01 +08:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
@abstractmethod
|
|
|
|
|
async def get(self, key: str) -> Any:
|
|
|
|
|
pass
|