人生苦短的Python

问题清单

pymysql 连接池

你知道的,为了我自己的那点需求,我已经解决了一个MySQL报错。现在来解决另外一个问题。

上面文章的内容都不难。直接无脑照抄代码……(2小时后)改完了。整个系统都改完了,能启动。部署到线上了。

然后来玩个测试。

~$ su -
~# systemctl stop mysql.service 
~# systemctl stop supervisor.service 
~# systemctl start mysql.service

// 在数据库中执行查询
show status like 'Threads%';
// 可以看到当前只有1个连接

// 在窗口1执行
~# python3 /usr/local/bin/les/test_a.py

// 在数据库中执行查询
show status like 'Threads%';
// 当前有4个连接,连接新增的数量与mincached字段设置的一致(Threads_connected=4,Threads_created=4)

// 在窗口2执行
~# python3 /usr/local/bin/les/test_b.py

// 在数据库中执行查询
show status like 'Threads%';
// 当前有7个连接(Threads_connected=7,Threads_created=7)

// 在窗口2中^C打断程序的执行

// 在数据库中执行查询
show status like 'Threads%';
// 当前有4个连接(Threads_connected=4,Threads_created=7,Threads_cached=3)

// 在窗口1中^C打断程序的执行

// 在数据库中执行查询
show status like 'Threads%';
// 当前有1个连接(Threads_connected=1,Threads_created=7,Threads_cached=6)

~# systemctl start supervisor.service
^D

好的。我已经得到我想要的数据了。拜~

tornado 高并发

2021.9.4 更新

现在是中午时间,没事做。就看看资料呗。Tornado实现多线程、多进程HTTP服务 一篇足以讲清整个问题(讲不清)

2021.10.1 更新

上面看了这么多,应该已经大概有些感性的认识了。下面自己去做两个demo体会下,然后继续这个话题。

高并发的话题现在莫名其妙的就跑到异步了……

2021.10.2 更新

2021.10.3 更新

……我做出了自己的选择:放弃 Tornado,转向 Flask。因为这样的服务完全用不上 tornado 的特性。还不如选择一个更大众的方式来进行这样的操作。换了 Flask 后,该是同步的还是同步的操作。剩下的问题,就交给部署运维吧。

没有想到,事情最后的解决办法竟然是这样的……

现在有另外一个问题需要验证:
连接池会有多个数据库连接。现在假如说 Flask 通过 Gunicorn 多进程部署了,那是不是说,数据库连接的数量就要翻倍了?

2021.10.4 更新

再扯些别的。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注