redis timeout

This commit is contained in:
mihalin 2022-02-16 18:45:17 +03:00
parent a504d38418
commit 02df39c9fd
2 changed files with 14 additions and 4 deletions

View File

@ -2,8 +2,10 @@ from dotenv import load_dotenv
from abc import ABC
import os
import logging
from olgram.utils.crypto import Cryptor
from functools import lru_cache
from datetime import timedelta
import typing as ty
from olgram.utils.crypto import Cryptor
load_dotenv()
@ -84,7 +86,13 @@ class ServerSettings(AbstractSettings):
def append_text(cls) -> str:
return "\n\nЭтот бот создан с помощью @OlgramBot"
logging.basicConfig(level=os.environ.get("LOGLEVEL", "INFO"))
@classmethod
@lru_cache
def redis_timeout_ms(cls) -> ty.Optional[int]:
return int(timedelta(days=14).total_seconds() * 1000.0)
logging.basicConfig(level=os.environ.get("LOGLEVEL", "WARNING"))
class BotSettings(AbstractSettings):

View File

@ -52,7 +52,8 @@ async def message_handler(message: types.Message, *args, **kwargs):
# сообщение нужно переслать в супер-чат
new_message = await message.forward(super_chat_id)
await _redis.set(_message_unique_id(bot.pk, new_message.message_id), message.chat.id)
await _redis.set(_message_unique_id(bot.pk, new_message.message_id), message.chat.id,
pexpire=ServerSettings.redis_timeout_ms())
# И отправить пользователю специальный текст, если он указан
if bot.second_text:
@ -67,7 +68,8 @@ async def message_handler(message: types.Message, *args, **kwargs):
chat_id = message.reply_to_message.forward_from_chat
if not chat_id:
return SendMessage(chat_id=message.chat.id,
text="<i>Невозможно переслать сообщение: автор не найден</i>",
text="<i>Невозможно переслать сообщение: автор не найден "
"(сообщение слишком старое?)</i>",
parse_mode="HTML")
chat_id = int(chat_id)