欢迎光临
我们一直在努力

peewee+mysql+evetlet 为每次操作,都新开一个数据库连接

from core.mysql.models import TweetTable
from loguru import logger
import eventlet
import time
from eventlet import monkey_patch
monkey_patch()

def run():
    q = TweetTable.select()

    logger.debug(list(q))


if __name__ == '__main__':
    while True:
        g = eventlet.spawn(run)
        g.wait()
        time.sleep(1)

上面的代码是错误的

图片.png

不打 monkey_patch,或者 monkey_patch 打晚了

都会导致连接复用

所以,我们要在一开始就打上 monkey_patch

from eventlet import monkey_patch
monkey_patch()
from core.mysql.models import TweetTable
from loguru import logger
import eventlet
import time


def run():
    q = TweetTable.select()

    logger.debug(list(q))


if __name__ == '__main__':
    while True:
        g = eventlet.spawn(run)
        g.wait()
        time.sleep(1)

把 monkey_patch 一到最开始,就可以了

图片.png

https://segmentfault.com/a/1190000043814226

未经允许不得转载:IT极限技术分享汇 » peewee+mysql+evetlet 为每次操作,都新开一个数据库连接

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址