• 使用调度器apscheduler实现py文件不停连接MySQL数据库


    背景说明:

    使用内网负载均衡添加后端主机,该主机安装有nginx,其配置文件代理内网的MySQL数据库地址 (数据库是主备形式的,重启的话会都重启)

    需要测试两个目标:
    (采用不停往MySQL里写数据,并记录时间)

    1. 重启nginx,程序是否会断开MySQL连接,影响数据写入
    2. 当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开始连上,主备都重启的耗时时间。



  • 相关阅读:
    程序员修炼之道:从小工到专家有感2
    3月13日
    第一次结对作业(2)
    3月12日
    3月11日
    第一次结对作业
    3月10日
    11月6日
    10月28日
    10月7日
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/16050496.html
Copyright © 2020-2023  润新知