feat: mark prior failures as superseded on successful download

This commit is contained in:
2026-03-18 23:32:51 -04:00
parent 2c95374edc
commit 0f2901ef58
+11 -1
View File
@@ -5,7 +5,7 @@ import logging
from datetime import datetime, timedelta
from typing import Optional
from sqlalchemy import select, and_, or_
from sqlalchemy import select, and_, or_, update
from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession, async_sessionmaker
from sqlalchemy.orm import selectinload
@@ -300,6 +300,16 @@ async def _download_source_async(source_id: int, download_id: int = None) -> dic
source.error_count = 0
logger.info(f"Download completed for {subscription_name}/{source_platform}: {dl_result.files_downloaded} files")
# Mark any prior failures for this source as superseded
await session.execute(
update(Download)
.where(
Download.source_id == source_id,
Download.status == DownloadStatus.FAILED,
)
.values(superseded=True)
)
publish_event("download.completed", {
"download_id": actual_download_id,
"source_id": source_id,