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

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

今天跟大家说一下Python定时任务的实现方法,可能很多人不太懂。为了让大家更好的了解,边肖为大家总结了以下内容,希望大家能从这篇文章中有所收获。

00-1010定时任务,顾名思义: 定期执行的任务可以是bash命令或脚本文件。通常用于我们在某个时间需要做的事情。

比如:每晚8: 00进行全业务场景界面自动回归测试,或者每20分钟从你的QQ农场偷菜!

1、定时任务

如果是大中型公司,一定要有一个对应的平台让大家接入。这样一个通用平台的名称或描述就是:分布式任务调度平台。最坏的情况,詹金斯可以满足我们的需求~

当我想起这位博主之前的‘童年’(刚工作的时候),公司没有用詹金斯,也没有这么大的平台接入。我如何做常规任务?

来看一段代码:

进口时间

fromdatetimeimportdatetime

deffunc():

#这是由计划任务执行的ui/界面自动化方法。

及格

defmain():

而:

#获取当前时间

now=datetime.now()

if now . hour==20 and now . min==0:

#当时间到达晚上8: 00时,我们开始运行自动化任务。

打印(“任务开始执行”)

func()

睡眠时间

if__name__=='__main__':

Main()不知道还有没有人还在用这个方法定期执行自动化测试。现在已经是2021年了,还是先进去吧。那么在Python中如何处理定时任务呢?继续找。

2、Python的定时任务

2.1 几种常见的方案

如果你只是上面提到的简单请求,那么我建议直接使用日程库。个人感觉这个库是小学版的升级版,对我的有限睡眠任务:做了一些扩展。

支持任务的定期执行。

行刑时间读起来更人性化。

它还支持在星期一x执行。

安装scheduler

官网给出的例子

导入计划

进口时间

#定义执行方法。

defjob():

打印('我正在工作.')

#每10分钟运行一次作业

每隔(10)分钟做(工作)

#每小时运行一次作业。

每隔()小时做(工作)

#每天10:30运行作业。

schedule . every(). day . at(' 10:30 ')。做(工作)

#每周一次

每周一做(工作)

#每周三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定时任务的实现方法是什么

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

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

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

2.2 题外话之持久化

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

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

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

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

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

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

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

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

2.2.1 ApScheduler

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

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

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

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/71908.html

(0)

相关推荐

  • netcore5.0json反序列化(netcore如何在界面定义传输的json)

    技术.NET Core如何从project.json 到 .csproj构建配置文件.NET Core如何从project.json 到 .csproj构建配置文件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希

    攻略 2021年12月13日
  • 1000抖音粉丝99元,抖音刷粉丝有什么好处?

    技术1000抖音粉丝99元,抖音刷粉丝有什么好处?今天我们来聊聊抖音的涨粉的事情,有些朋友说,我看到了一个抖音粉丝非常高的人,但是没有什么作品。
    其实很多人都不知道,抖音平台的粉丝一般都是可以刷的,不过我当然知道是怎么样

    测评 2021年11月11日
  • vxworks怎么看任务使用情况(vxworks操作系统用在哪儿)

    技术vxworks中系统任务有哪些小编给大家分享一下vxworks中系统任务有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!根据配置的不同,VxWorks系统在启动时,会同步启动一些系统任务,其中有

    攻略 2021年12月22日
  • 宋仁宗为什么无子,宋仁宗为什么一生没有儿子

    技术宋仁宗为什么无子,宋仁宗为什么一生没有儿子据史料记载,宋仁宗本来生育了有三个儿子,十五个女儿宋仁宗为什么无子。但是这十八个孩子只有四个女儿长大成人,其他都在出生后不久就死了,包括三个皇子。宋仁宗赵祯(1010年5月1

    生活 2021年10月19日
  • 【2021-11-29】连岳摘抄

    技术【2021-11-29】连岳摘抄 【2021-11-29】连岳摘抄23:59如果你热爱工作,你每天就会尽自己所能力求完美,而不久,你周围的每一个人也会从你这里感染到这种热情。——山姆·沃尔顿人不想学

    礼包 2021年12月1日
  • 串口调试工具kermit如何安装和配置

    技术串口调试工具kermit如何安装和配置这篇文章主要介绍了串口调试工具kermit如何安装和配置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、ker

    攻略 2021年11月25日