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

2023-11-16

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

  • 定时更新微信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:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python3-定时任务的四种实现方式 的相关文章

  • Lighttpd 和 cgi python

    我正在尝试通过 lighttpd 执行一些 python 脚本 但是当我尝试运行它时 我只得到一个要求我下载的空白文件 lighttpd conf server modules mod access mod alias mod access
  • 如何手动计算分类交叉熵?

    当我手动计算二元交叉熵时 我应用 sigmoid 来获取概率 然后使用交叉熵公式并平均结果 logits tf constant 1 1 0 1 2 labels tf constant 0 0 1 1 1 probs tf nn sigm
  • 元组有什么用?

    我现在正在学习 Python 课程 我们刚刚介绍了元组作为数据类型之一 我阅读了它的维基百科页面 但是 我无法弄清楚这种数据类型在实践中会有什么用处 我可以提供一些需要一组不可变数字的示例吗 也许是在 Python 中 这与列表有何不同 每
  • 用枢轴点拟合曲线 Python

    我有下面的图 我想用 2 条线来拟合它 使用 python 我设法适应上半部分 def func x a b x np array x return a x b popt pcov curve fit func up x up y 我想用另
  • 使用 kivy textinput 的 'input_type' 属性的问题

    您好 我在使用 kivy 的文本输入小部件的 input type 属性时遇到问题 问题是我制作了两个自定义文本输入 其中一个称为 StrText 其中设置了 input type text 然后是第二个文本输入 名为 NumText 其
  • 立体太阳图 matplotlib 极坐标图 python

    我正在尝试创建一个与以下类似的简单的立体太阳路径图 http wiki naturalfrequent com wiki Sun Path Diagram http wiki naturalfrequency com wiki Sun Pa
  • 如何使用 Pandas、Numpy 加速 Python 中的嵌套 for 循环逻辑?

    我想检查一下表的字段是否TestProject包含了Client端传入的参数 嵌套for循环很丑陋 有什么高效简单的方法来实现吗 非常感谢您的任何建议 def test parameter a list parameter b list g
  • Python beautifulsoup 仅限 1 级文本

    我看过其他 beautifulsoup 得到相同级别类型的问题 看来我的有点不同 这是网站 我正试图拿到右边那张桌子 请注意表的第一行如何展开为该数据的详细细分 我不想要那个数据 我只想要最顶层的数据 您还可以看到其他行也可以展开 但在本例
  • Python,将函数的输出重定向到文件中

    我正在尝试将函数的输出存储到Python中的文件中 我想做的是这样的 def test print This is a Test file open Log a file write test file close 但是当我这样做时 我收到
  • 如何在不丢失注释和格式的情况下更新 YAML 文件 / Python 中的 YAML 自动重构

    我想在 Python 中更新 YAML 文件值 而不丢失 Python 中的格式和注释 例如我想改造 YAML 文件 value 456 nice value to value 6 nice value 界面类似于 y yaml load
  • 在Python中检索PostgreSQL数据库的新记录

    在数据库表中 第二列和第三列有数字 将会不断添加新行 每次 每当数据库表中添加新行时 python 都需要不断检查它们 当 sql 表中收到的新行数低于 105 时 python 应打印一条通知消息 警告 数量已降至 105 以下 另一方面
  • 如何使用 pybrain 黑盒优化训练神经网络来处理监督数据集?

    我玩了一下 pybrain 了解如何生成具有自定义架构的神经网络 并使用反向传播算法将它们训练为监督数据集 然而 我对优化算法以及任务 学习代理和环境的概念感到困惑 例如 我将如何实现一个神经网络 例如 1 以使用 pybrain 遗传算法
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • Python3 在 DirectX 游戏中移动鼠标

    我正在尝试构建一个在 DirectX 游戏中执行一些操作的脚本 除了移动鼠标之外 我一切都正常 是否有任何可用的模块可以移动鼠标 适用于 Windows python 3 Thanks I used pynput https pypi or
  • 如何在 Windows 命令行中使用参数运行 Python 脚本

    这是我的蟒蛇hello py script def hello a b print hello and that s your sum sum a b print sum import sys if name main hello sys
  • 根据列 value_counts 过滤数据框(pandas)

    我是第一次尝试熊猫 我有一个包含两列的数据框 user id and string 每个 user id 可能有多个字符串 因此会多次出现在数据帧中 我想从中导出另一个数据框 一个只有那些user ids列出至少有 2 个或更多string
  • python import inside函数隐藏现有变量

    我在我正在处理的多子模块项目中遇到了一个奇怪的 UnboundLocalError 分配之前引用的局部变量 问题 并将其精简为这个片段 使用标准库中的日志记录模块 import logging def foo logging info fo
  • 模拟pytest中的异常终止

    我的多线程应用程序遇到了一个错误 主线程的任何异常终止 例如 未捕获的异常或某些信号 都会导致其他线程之一死锁 并阻止进程干净退出 我解决了这个问题 但我想添加一个测试来防止回归 但是 我不知道如何在 pytest 中模拟异常终止 如果我只
  • Pandas 每周计算重复值

    我有一个Dataframe包含按周分组的日期和 ID df date id 2022 02 07 1 3 5 4 2022 02 14 2 1 3 2022 02 21 9 10 1 2022 05 16 我想计算每周有多少 id 与上周重
  • 使用随机放置的 NaN 创建示例 numpy 数组

    出于测试目的 我想创建一个M by Nnumpy 数组与c随机放置的 NaN import numpy as np M 10 N 5 c 15 A np random randn M N A mask np nan 我在创建时遇到问题mas

随机推荐

  • 【数模】预测模型

    一 灰色系统 白色系统 系统信息完全明确 灰色系统 系统部分信息已知 部分信息未知 对在一定范围内变化的 与时间有关的灰色过程进行预测 过程 原始数据找规律 生成强规律性的数据序列 建立微分方程来预测未来趋势 黑色系统 系统的内部信息未知
  • 基于 SSM 框架的学生在线选课系统设计

    系统概述 在线选课系统中包含教师 学生两种用户 学生登录 管理自己的账号信息 修改信息等 增加或移除课程 教师登录 对个人资料进行查看和密码的修改 维护课程信息 增加与删除课程 对学生的分数进行增加 修改和删除的操作 系统基本功能结构 教师
  • Octave 基本操作 from 吴恩达的机器学习

    1 数学运算 注 在octave中是注释符号 2 逻辑操作 XOR 注意 不等于符号的写法是这个波浪线加上等于符号 3 打印 2 直接打印 设置a等于圆周率 如果我要打印该值 那么只需键入a像这样就打印出来了 注 在赋值语句最后加入 号 即
  • IDEA导入SpringBoot项目或者Maven项目(详解大全)

    1 解压项目 解压出后 2 打开IDEA导入项目 点击 找到你的项目 打开项目 选择maven项目 点击finsh按钮 3 启动启动类 无反应 找到原因 是maven的问题 使用maven中clear命令测试出错 4 修改maven配置 这
  • 编译器何时调用默认构造函数

    总的来说 编译器只在它需要的时候才会合成一个默认构造函数 或者扩张所有已存在的构造函数 一个类满足下列其中任何一个条件 1 包含了一个类的对象 这个对象有一个构造函数 包括编译器合成的默认构造函数 2 如果继承自一些基类 其中某些基类有一个
  • 不会写通讯录,你就是“文”盲

    目录 一 通讯录的实现 静态版 1 1文件的创建 1 2通讯录要存放的信息 1 3通讯录的功能 1 4通讯录的创建 1 5菜单打印以及基本逻辑的实现 1 6初始化通讯录 1 7增加联系人 1 8显示联系人 1 9删除联系人 1 10查找联系
  • http深入

    首部字段 包含请求和响应的各种条件和属性的各类首部 一般有4种首部 分别是 通用首部 请求首部 响应首部和实体首部 一 http通用首部 1 1 Cache Control字段 1 1 1 表示是否能缓存的指令 public Cache C
  • 小米iot业务_小米,大时代下的潜行者

    11月27日 小米发布了2019年第三季度的财务业绩 报告期内 小米收入达到537亿人民币 同比增长5 5 这是小米单季度的营收新高 相比收入 盈利能力的提高是小米财报最大的亮点 2019年第三季度 经调整后净利润为35亿元 同比增长20
  • Python代码制作2020“恐龙跳一跳“小游戏

    开发工具 Python版本 3 6 4 相关模块 pygame模块 以及一些Python自带的模块 相关文件 欢迎与我交流 环境搭建 安装Python并添加到环境变量 pip安装需要的相关模块即可 原理介绍 游戏规则简介 玩家通过空格键控制
  • springcloud入门基础搭建之hystrix

    目录 1 工程目录 2 单独使用hystrix 2 1引入依赖 2 2主启动添加 EnableHystrix 2 3在需要进行错误降级的方法上添加 HystrixCommand 2 4测试 3 整合feign和hystrix 3 1依赖 3
  • 如何搭建测试平台体系

    一个健康的测试平台体系 对测试人员的职责分工 协作模式会有不同的要求 测试平台核心的职责是完成高质量的交付已满足业务需求 测试活动包括单元测试 集成测试 接口测试 性能测试等 都是通过这些测试手段 协同整个测试平台来完成高质量交付的管理工作
  • Token的详细说明,看这一篇就够了

    文章目录 1 基于Token 的身份验证方法 2 JWT 2 1 Header 2 2 Payload 2 3 signatrue 3 Web安全 对于 Token 在很多大型网站中都有所应用 比如 Facebook Twitter Goo
  • C#编码规范-使用StyleCop进行代码格式检查

    前言 但是在项目开发的过程中 如果只是验证命名规则 而没有统一程序排版 不同开发人员将产出不同的文件格式 这样的产出 虽然能够正常地提供项目功能 但缺会大幅降低了这份程序代码的可维护性与可读性 本篇文章介绍如何通过StyleCop这个工具
  • C++模板库STL——vector容器(下)

    上篇介绍了vector的基本使用 本贴将介绍一些常用的函数与方法 帮助各位更加灵活的使用vector容器 include
  • 2021-12-21 《聪明的投资者》学习笔记-17.四个非常有启发的案例--失败案例

    摘自 聪明的投资者 The Intelligent Investor 第4版 本杰明 格雷厄姆 第17章 四个非常有启发的案例 失败案例 宾州中央铁路公司的案例 利润不合理 财务实力欠佳 Ling Temco Vought公司 举债扩张 粗
  • 网络知识点------SBC和BSC的定义

    数通知识点学习 2021 7 1 2021 12 31号我就职于浙江大华技术股份有限公司 担任嵌入式软件工程师 2022 1 4我入职中兴通讯 担任数通工程师 从物联网行业跨到通讯行业 有遗憾 有悲伤 也有快乐 希望以后还能继续通过博客记录
  • Qt 查看Qt助手的方法

    为了方便大家自学 在这里提供一种查看Qt助手的方法 1 打开软件点击帮助 在这里可以搜索关键词 2 假设搜索的是QToolBar 3 搜索的全是英文 这时可以点击 4 此时会跳到网页版Qt助手 5 使用的是 Microsoft Edge 浏
  • centos 安装java11

    直接执行 yum list grep java 11 输出结果如下 java 11 openjdk i686 1 11 0 16 0 8 1 el7 9 updates java 11 openjdk x86 64 1 11 0 16 0
  • JavaWeb——JavaWeb核心之Servlet

    一 Servlet简介 1 什么是Servlet Servlet 运行在服务端的Java小程序 是sun公司提供一套规范 接口 用来处理客户端请求 响应给浏览器的动态资源 但servlet的实质就是java代码 通过java的API 动态的
  • Python3-定时任务的四种实现方式

    最近做一个小程序开发任务 主要负责后台部分开发 根据项目需求 需要实现三个定时任务 定时更新微信token 需要2小时更新一次 商品定时上线 定时检测后台服务是否存活 使用Python去实现这三个任务 这里需要使用定时相关知识点 Pytho