请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

使用peewee-async查询数据好像并不是异步的,请老师指导一下

代码如下

cards = await db_session.execute(ScratchCard.select().where(ScratchCard.status == 1))
logging.info('S1')
ret = list()
await InitScratchCard.crontab(db_session)
logging.info('S2')
ts = int(time.time())
account_info = await AccountManager.get_account_info(account_id, db_session)
logging.info('S3')
account_economy = await AccountManager.get_account_economy(account_id, db_session)
logging.info('S4')

使用AB进行测试时,log是S1->S2->S3->S4,理论上异步应该是S1->S1->S1->S2->S2->·····
而且请求的时间基本上是并发数*单次请求的时间,不知道问题出在哪里
图片描述

正在回答 回答被采纳积分+3

1回答

提问者 Philllll 2020-04-08 11:44:04

找出原因了,peewee_async.MySQLDatabase限制了最大连接数,改为PooledMySQLDatabase之后顺序正常。但是请求时间仍然是并发数*单次请求时间,与同步并没有什么区别。

1 回复 有任何疑惑可以回复我~
  • bobby #1
    这些性能都在于mysql本身上 不是说用协程就能加快msyql的执行,而是协程可以快速的发起多个mysql的请求并维护这些链接
    回复 有任何疑惑可以回复我~ 2020-04-08 13:56:34
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号