Django ORM sync_to_async错误致命:剩余的连接插槽保留用于非复制超级用户连接

问题描述

我正在尝试为Django ORM实现异步支持https://docs.djangoproject.com/en/3.1/topics/async/),以便在数据库(Postgres)中写入许多记录。

我收到错误消息:root:致命:剩余的连接插槽保留用于非复制超级用户连接

我正在创建协程并将其添加到运行asyincio循环中

# Helper Class
class ModelsHelper:
    @staticmethod
    @sync_to_async
    def __handle_resource_data(data):
          // Some calculation to create kwargs dict
          return Resource.objects.get_or_create(**kwargs)
 
    async def store_data(metric):
        // some calculation to get data
        return await ModelsHelper.__handle_resource_data(data)
 
 
# Main File
def get_event_loop():
        loop = None
        try:
            loop = asyncio.get_event_loop()
        except Exception as e:
            print(" New Event Loop ".center(50,'*'))
            loop = asyncio.new_event_loop()
            asyncio.set_event_loop(loop)
        return loop
 
loop = get_event_loop()
future = asyncio.ensure_future(
            asyncio.gather(*[ModelsHelper.store_data(metric) for metric in metrics]),loop=loop
         )
loop.run_until_complete(future)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)