Python实现定点与定时任务方式比较多,找到下面四中实现方式,每个方式都有自己应用场景;下面来快速介绍Python中常用的定时任务实现方式,一起看看吧
最近做一个小程序开发任务,主要负责后台部分开发;根据项目需求,需要实现三个定时任务:
1>定时更新微信token,需要2小时更新一次;
2>商品定时上线;
3>定时检测后台服务是否存活;
使用Python去实现这三个任务,这里需要使用定时相关知识点;
Python实现定点与定时任务方式比较多,找到下面四中实现方式,每个方式都有自己应用场景;下面来快速介绍Python中常用的定时任务实现方式:
1>循环+sleep;
2>线程模块中Timer类;
3>schedule模块;
4>定时框架:APScheduler
在开始之前先设定一个任务(这样不用依赖外部环境):
1:定时或者定点监测CPU与内存使用率;
2:将时间,CPU,内存使用情况保存到日志文件;
先来实现系统监测功能:
准备工作:安装psutil:pip install psutil
功能实现
#psutil:获取系统信息模块,可以获取CPU,内存,磁盘等的使用情况
import psutil
import time
import datetime
#logfile:监测信息写入文件
def MonitorSystem(logfile = None):
#获取cpu使用情况
cpuper = psutil.cpu_percent()
#获取内存使用情况:系统内存大小,使用内存,有效内存,内存使用率
mem = psutil.virtual_memory()
#内存使用率
memper = mem.percent
#获取当前时间
now = datetime.datetime.now()
ts = now.strftime('%Y-%m-%d %H:%M:%S')
line = f'{ts} cpu:{cpuper}%, mem:{memper}%'
print(line)
if logfile:
logfile.write(line)
代码运行结果:
2019-03-21 14:23:41 cpu:0.6%, mem:77.2%
接下来我们要实现定时监测,比如3s监测一下系统资源使用情况。
最简单使用方式:sleep
这种方式最简单,直接使用while+sleep就可以实现:
def loopMonitor():
while True:
MonitorSystem()
#2s检查一次
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%