Added support for cache prefixes and TTL

This commit is contained in:
2025-07-09 16:49:01 +02:00
parent a468824d30
commit 79c1f5b147
3 changed files with 45 additions and 4 deletions

View File

@@ -1,5 +1,6 @@
import logging import logging
from logging import Logger from logging import Logger
from typing import Literal
from libbot.cache.classes import CacheMemcached, CacheRedis from libbot.cache.classes import CacheMemcached, CacheRedis
from libbot.cache.manager import create_cache_client from libbot.cache.manager import create_cache_client
@@ -16,5 +17,12 @@ class HoloBot(PycordBot):
self._set_cache_engine() self._set_cache_engine()
def _set_cache_engine(self) -> None: def _set_cache_engine(self) -> None:
if "cache" in self.config and self.config["cache"]["type"] is not None: cache_type: Literal["redis", "memcached"] | None = self.config["cache"]["type"]
self.cache = create_cache_client(self.config, self.config["cache"]["type"])
if "cache" in self.config and cache_type is not None:
self.cache = create_cache_client(
self.config,
cache_type,
prefix=self.config["cache"][cache_type]["prefix"],
default_ttl_seconds=3600,
)

View File

@@ -25,10 +25,12 @@
"cache": { "cache": {
"type": null, "type": null,
"memcached": { "memcached": {
"uri": "127.0.0.1:11211" "uri": "127.0.0.1:11211",
"prefix": null
}, },
"redis": { "redis": {
"uri": "redis://127.0.0.1:6379/0" "uri": "redis://127.0.0.1:6379/0",
"prefix": null
} }
}, },
"logging": { "logging": {

View File

@@ -0,0 +1,31 @@
import logging
from logging import Logger
from libbot.utils import config_set, config_delete
from mongodb_migrations.base import BaseMigration
logger: Logger = logging.getLogger(__name__)
class Migration(BaseMigration):
def upgrade(self):
try:
config_set("prefix", None, "cache", "memcached")
config_set("prefix", None, "cache", "redis")
except Exception as exc:
logger.error(
"Could not upgrade the config during migration '%s' due to: %s",
__name__,
exc,
)
def downgrade(self):
try:
config_delete("prefix", "cache", "redis")
config_delete("prefix", "cache", "memcached")
except Exception as exc:
logger.error(
"Could not downgrade the config during migration '%s' due to: %s",
__name__,
exc,
)