当前位置:首页>python>python自动化系列:Python + schedule库轻松实现每日定时数据库操作

python自动化系列:Python + schedule库轻松实现每日定时数据库操作

  • 2026-09-08 20:42:40
python自动化系列:Python + schedule库轻松实现每日定时数据库操作
作品介绍
作品名称:Python + schedule库轻松实现每日定时数据库操作
用到的库:pymysql、time、datetime、schedule
作品简介:该实例实现了一个定时任务,该任务每天晚上11点自动更新指定数据库表中的记录。

实现过程

一、导入必要的库

import pymysqlimport timefrom datetime import datetime, timedeltaimport schedule
      二、定义函数update_record
        • 使用pymysql.connect()创建数据库连接,并使用上下文管理器确保连接正确关闭。
        • 构建并执行一条UPDATE SQL语句来更新指定记录。
        • 提交更改到数据库,并打印一条包含当前时间和受影响表名的日志信息。
        • 如果发生异常(例如数据库连接失败或SQL执行错误),捕获异常并打印错误信息。
      def update_record(db, table, column, value, condition):    try:        with pymysql.connect(host='localhost', user='root', password='', db=db) as conn:            with conn.cursor() as cursor:                sql = f"UPDATE {table} SET {column} = %s WHERE {condition}"                cursor.execute(sql, (value,))                conn.commit()                print(f"{datetime.now()}: Updated record in {table}")    except Exception as e:        print(f"Failed to update record: {e}")
                      三、定义函数setup_daily_update
                        • 使用schedule.every().day.at("23:00").do(...)安排update_record函数在每天23:00时运行,传入所需的参数。
                      def setup_daily_update():    # 设置每天晚上11点执行的任务    schedule.every().day.at("23:00").do(update_record, "mydb", "users", "status", "active", "id = 1")
                                四、主程序逻辑
                                • 初始化:

                                  • 调用setup_daily_update()函数配置定时任务。
                                  • 打印一条消息表示调度器已启动,并等待下一次预定任务的到来。
                                • 无限循环:

                                  • 使用while True:创建一个无限循环,使程序持续运行。
                                  • 在每次迭代中调用schedule.run_pending()检查是否有任何待执行的任务。
                                  • 然后调用time.sleep(1)让程序暂停1秒钟,减少CPU占用,同时保持对定时任务的响应性。
                                if __name__ == "__main__":    setup_daily_update()    print("Scheduler started. Waiting for the next scheduled task...")    while True:        schedule.run_pending()        time.sleep(1)  # 等待1秒后再检查是否有待执行的任务
                                  五、结语

                                  以上就是本次分享的全部内容,如果你有任何疑问或想要分享你的自动化办公经验,我们的评论区永远为你敞开。你的每一个点赞和转发,都是对我们最大的支持和鼓励!

                                  想要深入学习并获取文中的完整代码吗?很简单,关注我们的公众号,并回复文章标题,即可立即获取。

                                  再次感谢你的阅读,期待在下一次分享中与你相见!

                                  精选阅读
                                  python自动化系列:一键替换文档关键词
                                  python自动化系列:旋转PDF文件特定页面
                                  python自动化系列:过滤文本(txt)的内容
                                  python自动化系列:抓取财经精选新闻
                                  python自动化系列:一键重命名文件,轻松跟踪修改历史
                                  python自动化系列:一键删除PDF文档密码

                                  python自动化系列:pdf页面转图片

                                  python自动化系列:重新排列pdf页面的顺序

                                  python自动化系列:裁剪pdf特定页面特定区域

                                  python自动化系列:将Excel表格中的学生信息自动填充到一个word文档

                                  python自动化系列:轻松合并PDF文件特定页面

                                  python自动化系列:将Excel表格中的学生多条信息自动填充到一个Word文档

                                  python自动化系列:如何轻松为PDF文件添加统一水印

                                  python自动化系列:批量图片水印添加工具

                                  python自动化系列:一键提取PPT文字到Word

                                  python自动化系列:Python脚本实现GIF动画的快速生成

                                  python自动化系列:轻松获取豆瓣Top 250电影数据

                                  python自动化系列:自动删除重复图片并保留最新版本

                                  python自动化系列:一键将Excel多页数据批量转换为Word文档

                                  python自动化系列:如何使用Python为PDF文件添加密码保护

                                  最新文章

                                  随机文章