最近做一个小程序开发任务,主要负责后台部分开发;根据项目需求,需要实现三个定时任务:
- 定时更新微信token,需要2小时更新一次;
- 商品定时上线;
- 定时检测后台服务是否存活;
使用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%, mem:77.6%
2019-03-21 14:28:48 cpu:1.4%, mem:77.6%
2019-03-21 14: