Added support for cache prefixes and TTL
This commit is contained in:
@@ -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,
|
||||||
|
)
|
||||||
|
@@ -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": {
|
||||||
|
31
migrations/202507091444.py
Normal file
31
migrations/202507091444.py
Normal 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,
|
||||||
|
)
|
Reference in New Issue
Block a user