Skip to content

Commit aa05f96

Browse files
committed
feat: mtls-multi-session 添加多佳话模拟程序
1 parent bfe3176 commit aa05f96

File tree

4 files changed

+94
-2
lines changed

4 files changed

+94
-2
lines changed

MANIFEST

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ bin/mtls-http
1212
bin/mtls-kill-all-conections
1313
bin/mtls-log
1414
bin/mtls-monitor
15+
bin/mtls-multi-session
1516
bin/mtls-perf-bench
1617
bin/mtls-random-passwd
1718
bin/mtls-rows-diff
@@ -31,6 +32,7 @@ mtls/innodb_statu.py
3132
mtls/inspection.py
3233
mtls/mgr.py
3334
mtls/replication.py
35+
mtls/sessions.py
3436
mtls/statu.py
3537
mtls/values.py
3638
mtls/variable.py

bin/mtls-multi-session

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/usr/bin/env python3
2+
#-*- coding: UTF-8 -*-
3+
#author: 蒋乐兴 [email protected]
4+
5+
6+
import os
7+
import time
8+
import logging
9+
import argparse
10+
11+
from mtls.sessions import create_sessions
12+
13+
14+
name = os.path.basename(__file__)
15+
16+
def parser_cmd_args():
17+
"""
18+
处理命令行参数
19+
"""
20+
args = argparse.ArgumentParser(name)
21+
args.add_argument("--host",type=str,default="127.0.0.1",help="MySQL 主机 IP ")
22+
args.add_argument("--port",type=int,default=3306,help="MySQL 端口")
23+
args.add_argument("--user",type=str,default="appuser",help="用户名")
24+
args.add_argument("--password",type=str,default="mtls@0352",help="密码")
25+
args.add_argument("--sql",type=str,default="select 'mysqltools-python' as 'this is ' ;",help="sql statement")
26+
args.add_argument("--sessions",type=int,default=7)
27+
args.add_argument("--duration",type=int,default=60)
28+
return args.parse_args()
29+
30+
31+
if __name__ == "__main__":
32+
try:
33+
args = parser_cmd_args()
34+
create_sessions(args.user,args.password,args.host,args.port,args.sql,args.sessions)
35+
time.sleep(args.duration)
36+
print("done!")
37+
except KeyboardInterrupt as err:
38+
print("bye bye .")
39+
except Exception as err:
40+
logging.exception(err)
41+
42+

mtls/sessions.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#-*- coding:utf8 -*-
2+
3+
"""
4+
模拟多个会话连接进数据库
5+
"""
6+
7+
import time
8+
from threading import Thread
9+
from mysql import connector
10+
11+
class MySQLSession(Thread):
12+
"""
13+
"""
14+
15+
def __init__(self, user_name, user_password, host="127.0.0.1", port=3306, sql="select 'mysqltools-python' as softname ;"):
16+
Thread.__init__(self)
17+
self.user_name = user_name
18+
self.user_password = user_password
19+
self.host = host
20+
self.port = port
21+
self.sql = sql
22+
23+
self._conn = None
24+
self.daemon = True
25+
26+
if sql.lower().startswith("select"):
27+
self.is_select_sql = True
28+
29+
def run(self):
30+
# 不释放了等待进行退出
31+
cnx = connector.connect(host=self.host,port=self.port,user=self.user_name,password=self.user_password)
32+
cursor = cnx.cursor()
33+
while True:
34+
cursor.execute(self.sql)
35+
if self.is_select_sql:
36+
_ = cursor.fetchall()
37+
else:
38+
cnx.commit()
39+
time.sleep(0.5)
40+
41+
42+
def create_sessions(user_name, user_password, host="127.0.0.1", port=3306, sql="select 'mysqltools-python' as softname ;",count = 7):
43+
sessions = []
44+
for i in range(count):
45+
session = MySQLSession(user_name,user_password,host,port,sql)
46+
sessions.append(session)
47+
session.start()
48+

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77
'bin/mtls-http', 'bin/mtls-log', 'bin/mtls-monitor', 'bin/mtls-backup',
88
'bin/mtls-perf-bench', 'bin/mtls-kill-all-conections', 'bin/mtls-sql-distribution',
99
'bin/mtls-file-stat', 'bin/mtls-expired-tables', 'bin/mtls-random-passwd',
10-
'bin/mtls-rows-diff', 'bin/mtls-fake-mysqld','bin/mtls-auto-fill']
10+
'bin/mtls-rows-diff', 'bin/mtls-fake-mysqld','bin/mtls-auto-fill','bin/mtls-multi-session']
1111

1212
scripts = olds_scripts + news_scripts
1313

1414
setup(name='mysqltools-python',
15-
version='2.20.11.27',
15+
version='2.22.03.01',
1616
scripts=scripts,
1717
packages=['mtls', 'mtls.kits'],
1818
maintainer='Neeky',

0 commit comments

Comments
 (0)