小编给大家分享一下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如何实现定时任务