diff --git a/scripts/backfill_max_publication_urls.py b/scripts/backfill_max_publication_urls.py index 73fb469..265bceb 100644 --- a/scripts/backfill_max_publication_urls.py +++ b/scripts/backfill_max_publication_urls.py @@ -6,7 +6,7 @@ from loguru import logger from vk_parser_app.constants import PUBLICATION_STATUS_PUBLISHED from vk_parser_app.db import close_pool, fetch_int_setting, fetch_setting, get_pool -from vk_parser_app.workers.max_poster import MAXAPIClient, MAXPoster +from vk_parser_app.workers.max_poster import MAXAPIClient, MAXAPIError, MAXPoster async def main() -> None: @@ -40,7 +40,17 @@ async def main() -> None: retry_backoff_max_sec=max(1, await fetch_int_setting("max_poster_retry_backoff_max_sec", 30)), ) as client: for row in rows: - data = await client.get_message(str(row["external_id"])) + try: + data = await client.get_message(str(row["external_id"])) + except MAXAPIError as exc: + missing += 1 + logger.warning( + "MAX URL backfill skipped raw_post={} message={} error={}", + row["raw_post_id"], + row["external_id"], + exc, + ) + continue url = poster.message_url_from_response(data) if not url: missing += 1