Python3-定时任务四种实现方式

https://blog.51cto.com/huangyg/2367088

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

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%, 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%
这种方式存在问题:只能处理单个定时任务。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值