2 Commits

Author SHA1 Message Date
xds
9abfbef871 Merge branch 'ideas' 2026-02-16 16:41:13 +03:00
xds
e2c050515d feat: Limit concurrent image generations to 4 using an asyncio semaphore. 2026-02-16 00:30:34 +03:00
7 changed files with 8 additions and 3 deletions

View File

@@ -22,6 +22,9 @@ from adapters.s3_adapter import S3Adapter
logger = logging.getLogger(__name__)
# Limit concurrent generations to 4
generation_semaphore = asyncio.Semaphore(4)
# --- Вспомогательная функция генерации ---
async def generate_image_task(
@@ -144,10 +147,12 @@ class GenerationService:
generation_model.id = gen_id
async def runner(gen):
logger.info(f"Starting background generation task for ID: {gen.id}")
logger.info(f"Generation {gen.id} entered queue (waiting for slot)...")
try:
await self.create_generation(gen)
logger.info(f"Background generation task finished for ID: {gen.id}")
async with generation_semaphore:
logger.info(f"Starting background generation task for ID: {gen.id}")
await self.create_generation(gen)
logger.info(f"Background generation task finished for ID: {gen.id}")
except Exception:
# если генерация уже пошла и упала — пометим FAILED
try: