使用调度器apscheduler实现py文件不停连接MySQL数据库
背景说明:
使用内网负载均衡添加后端主机,该主机安装有nginx,其配置文件代理内网的MySQL数据库地址 (数据库是主备形式的,重启的话会都重启)
需要测试两个目标:
(采用不停往MySQL里写数据,并记录时间)
- 重启nginx,程序是否会断开MySQL连接,影响数据写入
- 当MySQL重启时,记录MySQL重启耗时时间。
要求:
python 3.x 版本
安装模块有:
pymysql
faker
apscheduler
表test_a结构:
CREATE TABLE `test_a` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`var` varchar(255) DEFAULT NULL,
`create_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
程序内容:
import pymysql.cursors
import datetime, time
from faker import Faker
from apscheduler.schedulers.background import BackgroundScheduler
fake = Faker(locale='zh_CN')
conn_timeout = 1
scheduler = BackgroundScheduler()
def job1():
print('连接数据库中..')
conn = pymysql.connect(host='192.168.2.166', user='root', password='password',
database='park_cloud_db', port=3306, charset='utf8', connect_timeout=conn_timeout)
cursor = conn.cursor()
var = 1000
while var > 0:
var = var - 1
print("var的值是:", var) # 顺序
name = fake.name() # 造虚假人名
current_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') # 当前时间,精确到时分秒
sql = "INSERT INTO `test_a` (`name`, `var`, `create_time`) VALUES (%s, %s, %s)"
cursor.execute(sql, (name, var, current_time))
conn.commit()
print("等待1秒")
time.sleep(1)
cursor.close()
conn.close()
scheduler.add_job(job1, 'interval', seconds=1)
scheduler.start()
效果
1.测试目标1:重启nginx,程序是否会断开MySQL连接,影响数据写入
会断开,时间很短,只有一秒,然后就自动连接上了


2.测试目标2:当MySQL重启时,记录MySQL重启耗时时间。
从时间:16:37:56 开始连不上数据库,到时间16:38:15能连上一次后再连不上,又到时间16:38:26开始连上,主备都重启的耗时时间。




使用调度器apscheduler实现py文件不停连接MySQL数据库的更多相关文章
- Weka里如何将arff文件或csv文件批量导入MySQL数据库(六)
这里不多说,直接上干货! 前提博客是 Weka中数据挖掘与机器学习系列之数据格式ARFF和CSV文件格式之间的转换(四) 1.将arff文件批量导入MySQL数据库 我在这里,arff文件以Weka安 ...
- PHP Apache Access Log 分析工具 拆分字段成CSV文件并插入Mysql数据库分析
现在需要分析访问日志,怎么办? 比如分析D:\Servers\Apache2.2\logs\access2014-05-22.log http://my.oschina.net/cart/针对这个问题 ...
- Java&mysql:过滤文件内容,将新文件内容存入mysql数据库
在上一篇博文jdbc连接数据库中我已经简单介绍了如何连接到mysql数据库,今天要总结的是学长给我布置的一个小作业,把一个很大的已经用","分开了的一行一行的txt文件内容过滤掉注 ...
- C#连接Mysql数据库 MysqlHelper.cs文件
mysql.data.dll下载_c#连接mysql必要插件mysql.data.dll是C#操作MYSQL的驱动文件,是c#连接mysql必要插件,使c#语言更简洁的操作mysql数据库.当你的电脑 ...
- 【java项目实战】dom4j解析xml文件,连接Oracle数据库
简单介绍 dom4j是由dom4j.org出品的一个开源XML解析包.这句话太官方.我们还是看一下官方给出的解释.例如以下图: dom4j是一个易于使用的.开源的,用于解析XML,XPath和XSLT ...
- linux服务器初步印象,远程连接mysql数据库,传输文件,启动/关闭tomcat命令
1.连接服务器数据库,以Navicat连接mysql为例 1.1 常规 新建连接,连接名,主机名或ip地址:127.0.0.1 端口:3306用户名:(服务器端)root密码:(服务器端)pwd 1. ...
- (三)—Linux文件传输与mysql数据库安装
文件传输工具使用 为了速成,关于linux系统的学习都先放一放,用到哪个知识点就查哪个,这里想在linux下装一些服务练练手,最先想到的就是装个mysql数据库试试. 因为我用的是虚拟机下的li ...
- Windows通过data文件夹恢复mysql数据库
mysql--1146--报错 先找到数据库存放地址,即Data文件夹(复制留下来) 再用电脑管家把所有的mysql卸载 然后把mysql文件夹弄走(卸载不会清掉它,需手动,一般在C:\Program ...
- sql文件批量导入mysql数据库
有一百多个sql文件肿么破?一行一行地导入数据库肯定是极其愚蠢的做法,但是我差点就这么做了... 网上首先找到的方法是:写一个xxx.sql文件,里边每一行都是source *.sql ...,之后再 ...
随机推荐
- 【python】M3U8下载器脚本
[python]M3U8下载器脚本 脚本目标: 1. 输入M3U8文件的链接,得到视频 2.使用异步操作,这样可以快很多,不加锁,因为懒得写,而且影响不大 已知条件: 1.m3u8文件其实就是一个记录 ...
- 【炼丹Trick】EMA的原理与实现
在进行深度学习训练时,同一模型往往可以训练出不同的效果,这就是炼丹这件事的玄学所在.使用一些trick能够让你更容易追上目前SOTA的效果,一些流行的开源代码中已经集成了不少trick,值得学习一番. ...
- 攻防世界进阶区MISC ——56-60
56.low 得到一张bmp,世纪之吻,扔进kali中,binwalk,zsteg,无果,再放进stegsolve中,虽然发现小的数据块,但是过滤通道得不到任何信息,猜测是要用脚本进行 # lsb隐写 ...
- echart图表中y轴小数位数过长展示效果不佳
业务中后端返回的精密数据,小数过长,导致所有数据差距不大,在图表中显示重合为一条直线 解决方法设置echart的min属性 min: "dataMin", 但是设置了以后又出现了问 ...
- 如何编写测试团队通用的Jmeter脚本
平时学习.工作过程中,编写的一些jmeter脚本,相信大多数都遇到过这个问题.那就是:如果换一台电脑运行,文件路径不一样,会导致运行失败. 前不久,自己就真真切切遇到过一回,A同学写了个脚本用于压测, ...
- 使用OpenCv+Arduino实现挂机自动打怪
使用OpenCv+Arduino实现挂机自动打怪 最近在玩某网游,练级十分枯燥和缓慢,就是挂机刷刷刷,所以研究一下自动化,找了个可以原地挂机刷怪的职业,然后用OpenCv检测技能冷却,冷却好了通过串口 ...
- 使用 Azure 静态 Web 应用服务免费部署 Hexo 博客
一.前言 最近在折腾 Hexo 博客,试了一下 Azure 的静态 Web 应用服务,发现特别适合静态文档类型的网站,而且具有免费额度,支持绑定域名.本文只是以 Hexo 作为示例,其他类型的框架也是 ...
- angular里forwardRef的原理
一段会报错的angular代码 @Injectable() class Socket { constructor(private buffer: Buffer) { } } console.log(B ...
- 搞懂前端二进制系列(一):🍇 认识Blob对象
参考资料: https://juejin.cn/post/6844904183661854727 [你不知道的Blob] https://juejin.cn/post/6844904144453517 ...
- vue中如何在自定义组件上使用v-model和.sync
自定义事件 tips 推荐始终使用 kebab-case 的事件名.(v-on会将事件名自动转换为小写,避免匹配不到) changeData × change-data √ 自定义组件的v-model ...