千家信息网

Python定时任务的实现方法是什么

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,今天就跟大家聊聊有关Python定时任务的实现方法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、定时任务定时任务,顾名思义: 定时执
千家信息网最后更新 2026年11月02日Python定时任务的实现方法是什么

今天就跟大家聊聊有关Python定时任务的实现方法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1、定时任务

定时任务,顾名思义: 定时执行的任务,可以是一段bash命令,也可以是一个脚本文件。通常用于我们需要在特定时刻做事情。

举个例子: 每晚8点执行全业务场景接口自动化回归测试,又或者每隔20分钟去你家QQ农场偷菜!

2、Python的定时任务

如果是大中型公司,一定有对应的平台让大家接入。一般这样的平台的名字或者描述都是: 分布式任务调度平台这样的。再不济还有jenkins满足我们的需求~

想起博主以前"小时候"(刚工作的时候),公司既没有用jenkins,也没有这样的大平台可以接入。我是怎么做定时任务的呢?

来看一段代码:

import timefrom datetime import datetimedef func():    # 这个是定时任务要执行的ui/接口自动化方法    passdef main():    while True:      # 获取当前时间      now = datetime.now()      if now.hour == 20 and now.minute == 0:          # 当时间到达晚上8点0分,我们就开始跑自动化任务啦          print("任务开始执行")          func()      time.sleep(60)            if __name__ == "__main__":    main()

不知道现在是否还有人依然用着这样的方式定时执行自动化测试,既然都2021年了,那咱们还是先进点吧。那么定时任务在Python中要怎么做呢?接着看。

2.1 几种常见的方案

2.1.1 schedule

如果你只是上面提到的简单诉求,那我建议直接使用schedule库。这个库我个人感觉是小学生版本的升级版,对于我那种局限的sleep任务做了一些扩展:

  • 支持了按周期执行任务

  • 执行时间阅读起来更人性化

  • 还支持星期X执行

安装scheduler

pip install schedule

官网给出的例子

import scheduleimport time# 定义一个执行方法def job():    print("I'm working...")# 每10分钟执行一次jobschedule.every(10).minutes.do(job)# 每小时执行一次jobschedule.every().hour.do(job)# 每天10:30执行jobschedule.every().day.at("10:30").do(job)# 每个星期一执行一次schedule.every().monday.do(job)# 每个星期三的13:15执行一次schedule.every().wednesday.at("13:15").do(job)# 在每分钟的17秒执行一次schedule.every().minute.at(":17").do(job)while True:    # 进入schedule循环    schedule.run_pending()    time.sleep(1)

可以看出,api十分简单,语义也很清晰。基本可以满足我们的需求了~如果我们只是要定时去做某些事情的话,我想这个库非常human。

2.1.2 Jenkins

这个工具相比大家都有所了解吧~jenkins是一个比较强大的软件了,它可以打通git/svn,也支持定时任务等。有着丰富的插件,比如邮件,是一套完整的CI/CD解决方案。对于任务的执行结果的记录,也是可追溯的。估计唯一的缺点就是,引入了额外的系统。可能本身我只是一个自动化测试框架,现在却要搭建一套jenkins。

如果大家有代码改动->执行定时任务类似的需求,又需要完善的权限控制系统的话,那jenkins会是你的不二选择。

2.1.3 Celery

我对这家伙了解的不太多,但python+celery仿佛成了一个固定搭配。不知道我理解的对不对:

celery是一个任务队列,你可以制定好任务执行的规则,放入队列中,会有专门的消费端来帮你执行这些任务。

说到这里就不得不提到持久化了~

2.2 题外话之持久化

什么是持久化呢?通俗的讲,就是瞬时数据(比如内存中的数据,是不能永久保存的)持久化为持久数据(比如持久化至数据库中,能够长久保存)

我们可以把数据放到文件里,也可以放到数据库(实际上也是磁盘里)进行持久性保存。

这样做的目的: 数据可以存储,下次也还能拿到这些数据。这里面的内容太多了,打算后面再开一节来讲。

我们在Python里面的变量啊,这些数据都是存放在内存当中的,所以我们刚才的schedule是不支持持久化的。(也可能是我没研究到)

那jenkins支持吗?他是支持的,你想,你建立一个项目,里面有一些job的配置,什么时候执行,执行了干嘛,最后保存。

上述就是一个持久化的过程。

你保存了数据以后,下次能够获取到这个项目的任务信息,也就是说你哪怕重启了jenkins,任务依然存在。

说明任务本身作为了一条数据,持久地保存了起来。

2.2.1 ApScheduler

"APScheduler是一个Python库,可让您安排稍后要执行的Python代码,只需一次或定期执行。您可以根据您添加新的作业或删除旧的旧作业。如果您在数据库中存储工作,他们还将存活调度程序重新启动并保持状态。重新启动调度程序时,它将运行它在脱机1时应该运行的所有作业。"

这是摘自ApScheduler官网的介绍,总体来说它支持对任务的增删改查(持久化),也能很好地支撑定时任务的执行。它相对来说比较轻量,不像celery那么复杂,也不像schedule那么简陋。由于我们不打算引入jenkins,所以总体来说,ApScheduler算得上是咱们执行定时任务的不二之选了。

看完上述内容,你们对Python定时任务的实现方法是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

任务 数据 支持 自动化 方法 内容 平台 代码 只是 就是 数据库 时间 星期 需求 作业 测试 调度 例子 公司 内存 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 保险科技 互联网保险 科技和互联网公司 互联网医疗科技 远拓互联网科技 亿人帮互联网科技 互联网科技宣传片 山东吉时兔互联网科技有限公司 互联网 科技馆 互联网科技公司需要的职位 成都互联网科技公司100强 现代互联网科技股 湖南一路畅行互联网科技 知域互联网科技有限公司大骗子 消费医药和互联网科技 合肥互联网科技公司公章图片 江苏互联网智能科技软件 山东大美朱楼互联网科技有限公司 版纳互联网科技选哪家 互联网科技创业有什么好项目 知域互联网科技有限公司官网 广州大一互联网络科技有限公司 浩特互联网科技 花神(南京)互联网科技有限公司 青岛科技大学互联网大赛研究生 企晟互联网信息科技有限公司 互联网科技公司营业执照怎么办理 每天都有哪些好的互联网科技 信承诺互联网科技有限公司 唯美互联网科技 互联网科技的前景
0