Python3如何实现定时任务

  介绍

小编给大家分享一下Python3如何实现定时任务,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

python有哪些常用库

python常用的库:1. requesuts; 2. scrapy; 3.枕头;4.扭曲;5. numpy; 6. matplotlib; 7. pygama; 8. ipyhton等。

最近做一个小程序开发任务,主要负责后台部分开发,根据项目需求,需要实现三个定时任务:

1祝辞定时更新微信牌,需要2小时更新一次;

2的在商品定时上线;

3祝辞定时检测后台服务是否存活;

<强>使用python去实现这三个任务,这里需要使用定时相关知识点;

python实现定点与定时任务方式比较多,找到下面四中实现方式,每个方式都有自己应用场景;下面来快速介绍python中常用的定时任务实现方式:

1祝辞循环+睡眠;

2祝辞线程模块中定时器类;

3的在安排模块;

4祝辞定时框架:APScheduler

在开始之前先设定一个任务(这样不用依赖外部环境):

1:定时或者定点监测CPU与内存使用率;

2:将时间,CPU、内存使用情况保存到日志文件;

先来实现系统监测功能:

准备工作:安装psutil: <代码> pip安装psutil

<强>功能实现

# psutil:获取系统信息模块,可以获取CPU、内存,磁盘等的使用情况   import  psutil   import 时间   import  datetime   #日志文件:监测信息写入文件   def  MonitorSystem (=logfile 没有一个):   ,#获取cpu使用情况=,,cpuper  psutil.cpu_percent ()   ,#获取内存使用情况:系统内存大小,使用内存,有效内存,内存使用率=,,mem  psutil.virtual_memory ()   ,#内存使用率=,memper  mem.percent   ,#获取当前时间   ,你=,datetime.datetime.now ()=,,ts  now.strftime (& # 39; Y % - % - % d  % H: % m: % & # 39;)=,line  f # 39; {ts}, cpu: {cpuper} %,, mem: {memper} % & # 39;   ,打印(线)   ,if 日志文件:   logfile.write才能(线)

代码运行结果:

2019-03-21 14:23:41 cpu: 0.6%, mem: 77.2%

接下来我们要实现定时监测,比如3 s监测一下系统资源使用情况。

<强>最简单使用方式:睡眠

这种方式最简单,直接使用+睡觉的时候就可以实现:

def  loopMonitor ():   ,while 真正的:   MonitorSystem才能()   # 2 s才能检查一次   time . sleep(3)才能   loopMonitor ()

输出结果:

2019-03-21 14:28:42 cpu: 1.5%, mem: 77.6%
2019-03-21 14:28:45 cpu: 1.6%, mem: 77.6%
2019-03-21 14:28:48 cpu: 1.4%, mem: 77.6%
2019-03-21 14:28:51 cpu: 1.4%, mem: 77.6%
2019-03-21 14:28:54 cpu: 1.3%, mem: 77.6%

这种方式存在问题:只能处理单个定时任务。

如果你依然在编程的世界里迷茫,不知道自己的未来规划

自己是一名高级python开发工程师,从基础的python脚本到web开发,爬的虫,django,数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!分享一些学习的方法和需要注意的小细节

又来了新任务:需要每秒监测网络收发字节,代码实现如下:

def  MonitorNetWork (=logfile 没有一个):   ,#获取网络收信息=,,netinfo  psutil.net_io_counters ()   ,#获取当前时间   ,你=,datetime.datetime.now ()=,,ts  now.strftime (& # 39; Y % - % - % d  % H: % m: % & # 39;)=,line  f # 39; {ts}, bytessent={netinfo.bytes_sent}, bytesrecv={netinfo.bytes_recv} & # 39;   ,打印(线)   ,if 日志文件:   logfile.write才能(线)   MonitorNetWork ()

代码执行结果:

2019-03-21 14:47:21 bytessent=169752183, bytesrecv=1107900973

如果我们同时在而循环中监测两个任务会有等待问题,不能每秒监测网络情况。

<强>计时器实现方式

计时器最基本理解就是定时器,我们可以启动多个定时任务,这些定时器任务是异步执行,所以不存在等待顺序执行问题。

<强>先来看定时器的基本使用:

导入:从进口线程计时器

主要方法:

计时器方法说明计时器(间隔、函数参数=None, kwargs=None)创建定时器取消()取消定时器开始()使用线程方式执行加入(自我,超时=None)等待线程执行结束

定时器只能执行一次,如果需要重复执行,需要重新添加任务,

我们先来看基本使用:

Python3如何实现定时任务