小编Chu*_*tin的帖子

保存后的异步 SqlAlchemy 会话需要太多时间才能返回

我正在从 SQLAlchemy 迁移到 SQLAlchemy[async],使用 postgresql 作为我的数据库。我正在关注 SQL Alchemy 文档https://docs.sqlalchemy.org/en/14/_modules/examples/asyncio/async_orm.html

对代码进行所有更改后,我的测试变得非常慢

我添加了一堆日志以便打印丢失时间的位置。我也进行了分析,但 cProfile 没有显示任何相关内容。

仅在插入后我才在代码中出现这种延迟。在我分享的测试中,我先执行插入,然后执行检索,并且它仅在会话与操作一起使用后发生add

engine = create_async_engine(DATABASE_URL,
                             pool_size=20,
                             max_overflow=2,
                             pool_recycle=300,
                             pool_pre_ping=True,
                             pool_use_lifo=True)
async_session = sessionmaker(engine, expire_on_commit=False, class_=AsyncSession)


@asynccontextmanager
async def session_scope() -> AsyncSession:
    """
    Context manager for API DB Sessions
    """
    try:
        async with async_session() as session:
            await session.begin()
            logger.info('Yielding session')
            yield session
            logger.info('Returned session')
            logger.info('Pre commit')
            await session.commit()
            logger.info('Commit finished')
    except Exception as exc:  # pylint: disable=W0703
        logger.exception('Exception on session')
        await session.rollback()
        raise exc 
Run Code Online (Sandbox Code Playgroud)

这是我的客户

async …
Run Code Online (Sandbox Code Playgroud)

asynchronous sqlalchemy asyncpg fastapi

7
推荐指数
1
解决办法
1433
查看次数

RabbitMQ - 多个实例从同一主题读取

我有来自不同应用程序的多个生产者向 RabbitMQ 中的主题发送消息。来自不同应用程序的多个消费者正在阅读这些主题。这个简单的架构作为 PoC 已经完美运行。但现在我有来自这些应用程序的多个实例,并且我不希望应用程序 X 实例 1 读取与应用程序 X 实例 2 相同的消息。但是应用程序 X 和应用程序 Y(及其所有实例)需要从同一主题变为红色。

我知道如果消费者共享相同的消费者 ID,Karaf 会平衡主题消息的消耗。RabbitMQ中有这个功能吗?我一直在阅读文档,但没有找到这样的内容。

python rabbitmq apache-kafka

5
推荐指数
1
解决办法
4634
查看次数