diff --git a/payphone/cogs/calls/cog.py b/payphone/cogs/calls/cog.py index 04b419d..b8fa912 100644 --- a/payphone/cogs/calls/cog.py +++ b/payphone/cogs/calls/cog.py @@ -9,6 +9,8 @@ from discord.utils import find from tortoise import transactions, exceptions +import asyncpg.exceptions + import aiohttp import orjson @@ -63,8 +65,23 @@ class Calls(base.Cog): key=lambda m: m.created_at, ) - await models.Message.bulk_create(messages, batch_size=500) - await models.MessageContent.bulk_create(message_contents, batch_size=500) + while True: + try: + await models.Message.bulk_create(messages, batch_size=500) + break + + except asyncpg.exceptions.DeadlockDetectedError: + continue + + while True: + try: + await models.MessageContent.bulk_create( + message_contents, batch_size=500 + ) + break + + except asyncpg.exceptions.DeadlockDetectedError: + continue print( f"DONE! Flushed {len(messages):,} messages and {len(message_contents):,} message contents."