Fix crash
This commit is contained in:
		
							parent
							
								
									ed5266594d
								
							
						
					
					
						commit
						a0dcf50a65
					
				
							
								
								
									
										10
									
								
								Dockerfile
								
								
								
								
							
							
						
						
									
										10
									
								
								Dockerfile
								
								
								
								
							| 
						 | 
				
			
			@ -1,13 +1,13 @@
 | 
			
		|||
# Dockerfile
 | 
			
		||||
 | 
			
		||||
FROM python:3.11-alpine
 | 
			
		||||
FROM python:3.11-slim
 | 
			
		||||
 | 
			
		||||
# Установка системных зависимостей
 | 
			
		||||
RUN apk update && apk add --no-cache \
 | 
			
		||||
    build-base \
 | 
			
		||||
RUN apt-get update && apt-get install -y --no-install-recommends \
 | 
			
		||||
    build-essential \
 | 
			
		||||
    libffi-dev \
 | 
			
		||||
    openssl-dev \
 | 
			
		||||
    && rm -rf /var/cache/apk/*
 | 
			
		||||
    libssl-dev \
 | 
			
		||||
    && rm -rf /var/lib/apt/lists/*
 | 
			
		||||
 | 
			
		||||
COPY app /app
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
# app/api/routes.py
 | 
			
		||||
 | 
			
		||||
from fastapi import APIRouter, HTTPException, Depends
 | 
			
		||||
from fastapi import APIRouter, HTTPException
 | 
			
		||||
from app.models.schemas import TextInput, ToxicityOutput
 | 
			
		||||
from app.core.cache import cache
 | 
			
		||||
import json
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,26 +1,41 @@
 | 
			
		|||
import aioredis
 | 
			
		||||
# app/core/cache.py
 | 
			
		||||
 | 
			
		||||
import asyncio
 | 
			
		||||
import json
 | 
			
		||||
import hashlib
 | 
			
		||||
import logging
 | 
			
		||||
from typing import Optional
 | 
			
		||||
 | 
			
		||||
import redis.asyncio as aioredis
 | 
			
		||||
from app.core.config import settings
 | 
			
		||||
 | 
			
		||||
logger = logging.getLogger(__name__)
 | 
			
		||||
 | 
			
		||||
class RedisCache:
 | 
			
		||||
    def __init__(self):
 | 
			
		||||
        self.redis = None
 | 
			
		||||
        self.redis: Optional[aioredis.Redis] = None
 | 
			
		||||
 | 
			
		||||
    async def connect(self):
 | 
			
		||||
        self.redis = await aioredis.from_url(settings.REDIS_URL, encoding="utf-8", decode_responses=True)
 | 
			
		||||
        if not self.redis:
 | 
			
		||||
            self.redis = aioredis.from_url(settings.REDIS_URL, encoding="utf-8", decode_responses=True)
 | 
			
		||||
            logger.info("Подключение к Redis установлено.")
 | 
			
		||||
 | 
			
		||||
    async def disconnect(self):
 | 
			
		||||
        if self.redis:
 | 
			
		||||
            await self.redis.close()
 | 
			
		||||
            logger.info("Подключение к Redis закрыто.")
 | 
			
		||||
 | 
			
		||||
    async def get(self, key: str):
 | 
			
		||||
        if not self.redis:
 | 
			
		||||
            await self.connect()
 | 
			
		||||
        return await self.redis.get(key)
 | 
			
		||||
        value = await self.redis.get(key)
 | 
			
		||||
        logger.debug(f"Получено из кеша по ключу {key}: {value}")
 | 
			
		||||
        return value
 | 
			
		||||
 | 
			
		||||
    async def set(self, key: str, value: str, expire: int = 3600):
 | 
			
		||||
        if not self.redis:
 | 
			
		||||
            await self.connect()
 | 
			
		||||
        await self.redis.set(key, value, ex=expire)
 | 
			
		||||
        logger.debug(f"Сохранено в кеш по ключу {key}: {value} с истечением {expire} секунд")
 | 
			
		||||
 | 
			
		||||
cache = RedisCache()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,7 @@ fastapi
 | 
			
		|||
uvicorn[standard]
 | 
			
		||||
transformers
 | 
			
		||||
gunicorn
 | 
			
		||||
aioredis==2.0.1
 | 
			
		||||
redis>=4.0
 | 
			
		||||
celery==5.3.0
 | 
			
		||||
redis==4.5.5
 | 
			
		||||
pydantic_settings
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue