peewee PooledMySQLDatabase有缓存还是缓冲区?

时间:2016-01-13 10:30:07

标签: python mysql peewee

我创建一个这样的mysql连接池:

database = PooledMySQLDatabase('test', max_connections=10,
                       **{'host': 'localhost', 'port': 3306,
                          'user': 'root', 'password': ''})


class BaseModel(Model):
class Meta:
    database = database



class Tb1(BaseModel):
    point_id = PrimaryKeyField()

    class Meta:
        db_table = 'tb1'

但是,我在数据库中插入记录或删除记录时,在我的程序中,选择结果不会改变。

while True:
    database.connect()
    tb_list = Tb1.select()
    print(len(tb_list))
    database.close()
    import time
    time.sleep(2)

当我将PooledMySQLDatabase重新编译为MySQLDatabase时,结果是正常的。 在我的项目中,我想使用多线程,所以我需要创建一个mysql池。

非常感谢

1 个答案:

答案 0 :(得分:1)

没有缓存,没有缓冲区。它与事务管理有关。只要确保你在交易中运行你的陈述,你应该没事。

多线程应用程序不要求使用peewee的POOL。即使没有池,Peewee也能正确管理每线程连接。