Schedule

2023-11-08

Part1背景

定时任务,在我们实际开发中经常会用到,比如 LinuxCorntabDjangoDjango-celeryDjango-corntab 等。但是这些工具和框架总有某些不合适的地方,比如不灵活,笨重等。今天我们就来介绍一款轻量化的定时任务框架 Schedule

Part2关于 Schedule

轻量化,零依赖,简单易上手等都是 Schedule 的优点。

1安装

pip install schedule

2例子

import schedule,time

def job():
    print("I'm working...")

# 每隔十分钟执行一次
schedule.every(10).minutes.do(job)

# 每隔一小时执行一次
schedule.every().hour.do(job)

# 每天的18:50执行一次
schedule.every().day.at("18:50").do(job)

# 每周一执行一次
schedule.every().monday.do(job)

# 每周天的18:50执行一次
schedule.every().sunday.at("18:50").do(job)

# 每周三的18:50执行一次
schedule.every().wednesday.at("18:50").do(job)

# 每分钟的第44秒执行一次
schedule.every().minute.at(":44").do(job)

n=0
while True:
    schedule.run_pending()
    time.sleep(1)
    n=n+1
    if n>=120:
        break

以上就是 schedule 的最基础用法,我都做了注释。按照如上规则,定时任务将会触发 4 次。因为今天周天,小编触发定时任务的时间为 18:49:33,所以周天的 18:50 执行一次,每天的 18:50 执行一次,2 分钟内触发两次 44 秒。所以总共执行 4job

有图为证

Part3实际应用

一个很简单实用的例子,我计划使用定时任务,每两秒获取一下西安当前的气温,方便实时观测。如果你有兴趣,也可以考虑将其可视化。

3代码

import schedule,time,requests,json

def job():
    response_res = requests.get('http://api.k780.com/?app=weather.today&weaId=316&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json')
    response_res.raise_for_status
    weather_info = json.loads(response_res.content).get("result")
    citynm=weather_info.get("citynm")
    temperature_curr=weather_info.get("temperature_curr")
    print(f'当前城市:{citynm} 此刻的温度是:{temperature_curr}')

# 每隔2秒执行一次
schedule.every(2).seconds.do(job)

n=0
while True:
    schedule.run_pending()
    time.sleep(1)
    n=n+1
    if n>10:
        break
效果图

我们定时 10 秒,2 秒执行一次,不出意外我们的定时任务获取了 5 次西安的温度,从结果我们了解到当前室外的温度是 31℃,所以还是建议大家在家吹空调。

以上就是今天的全部内容了,感谢您的阅读,我们下节再会。

往期推荐

5分钟带你了解Scrum

Gevent | 异步就用它!

Partial | 超有用的偏函数

PyWebIo | 快速构建web应用

5分钟学会本地Pypi源搭建

jenkinsclient | 好用的jenkins客户端

PySimpleGUI经典实践之:这个汉字怎么读?

FastApi-18-Token生成

FastApi-19-Token校验

FastApi-20-Token获取和使用

FastApi-21-APIRouter

点亮在看!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Schedule 的相关文章

随机推荐

  • 【Antlr】使用语义判定修改语法分析过程

    文章目录 1 概述 2 识别编程语言中的多种方言 2 案例 2 1 完整案例 1 概述 上一篇文章 Antlr Antlr属性和动作 识别关键字不固定的语句 出自 antlr 权威指南 并且补充 在上一章中 我们学习了如何在语法中嵌入动作
  • 简单了解机器学习(Machine Learning)

    首先 什么是机器学习 笼统来讲 机器学习是通过让机器去学习从而帮助人类做出决定 人类可以说在任何时刻 做任何事情时都在面临着无数的决定 从小的决定 晚饭吃什么 穿哪双鞋 喝什么饮料 到大的决定 专业选什么 工作选什么 定居在哪里 等 我们所
  • 【关于笔记软件的感受、期望,以及初期预案】

    市场 现状 首先看格式 md比较轻量级 支持这个格式的软件也比较广泛 生产力决定生产关系 就目前需要记录的内容和频率数量来看 个人感觉用这个格式承载笔记是最合适的 文字方面 图画多媒体编辑除外 包括在项目中也会用它来做简介 语雀 飞书等等的
  • matlab矩阵分割示例

    下面介绍了使用mat2cell函数把矩阵分割为我们想要的形状 1 先产生一个6x6的随机矩阵作为被分割矩阵 2 比如想把矩阵a分割为4块 也就分为4个3x3的矩阵 方法如下 b mat2cell a 3 3 3 3 运行结果如下 再比如c
  • (一)Android布局时资源文件使用

    一 Android布局时菜单资源文件使用 Android Menu资源的使用 菜单分为三种 OptionsMenu 选项菜单 ContextMenu 上下文菜单 SubMenu 子菜单 OptionsMenu默认情况下是在点击Menu键后出
  • Python 开发桌面应用居然如此简单

    我们都知道 Python 可以用来开发桌面应用 一旦功能开发完成 最后打包的可执行文件体积大 并且使用 Python 开发桌面应用周期相对较长 假如想快速开发一款 PC 端的桌面应用 推荐使用 Aardio Python 搭配的方式进行开发
  • Session(服务端会话跟踪技术)

    开发工具与关键技术 IDEA 撰写时间 2022 10 18 服务端会话跟踪技术 将数据保存到服务端 javaEE 提供HttpSession接口 来实现一次会话的多次请求间数据共享功能 注意 Session 是基于Cookie实现的 Se
  • iOS--Runloop

    Runloop概述 一般来说 一个线程一次只能执行一个任务 执行完成后线程就会退出 就比如之前学OC时使用的命令行程序 执行完程序就结束了 而runloop目的就是使线程在执行完一次代码之后不会结束程序 而是使该线程处于一种休眠的状态 等待
  • 力扣刷题——数组(c++)

    题目 给你一个数组 nums 和一个值 val 你需要 原地 移除所有数值等于 val 的元素 并返回移除后数组的新长度 不要使用额外的数组空间 你必须仅使用 O 1 额外空间并 原地 修改输入数组 元素的顺序可以改变 你不需要考虑数组中超
  • va_list、va_start、va_arg、va_end宏的使用

    当你的函数的参数个数不确定时 就可以使用上述宏进行动态处理 这无疑为你的程序增加了灵活性 Example CString AppendString CString str1 一个连接字符串的函数 参数个数可以动态变化 LPCTSTR str
  • 特斯拉Model 3 Key Card里的黑科技

    特斯拉Model 3给用户提供了三种解锁电动车的姿势 遥控钥匙 可选 需付费购买 手机APP蓝牙解锁 以及 Key Card 钥匙卡片 其中Key Card作为手机蓝牙钥匙的备份方案 以应对手机没电了 忘带了 APP故障 车机蓝牙故障等上不
  • Python实现逻辑回归(LogisticRegression)完整过程

    最近正在做的项目正好利用到了逻辑回归 所以正好系统的学习了下 本篇博文把自己的学习笔记 项目思路及代码都记录下来 它的计算原理很多网站和书籍都有介绍 就不在这班门弄斧了 主要还是记录自己如何实现 一 逻辑回归简介 Logistic Regr
  • matlab中未定义与 ‘cell‘ 类型的输入参数相对应的运算符 ‘+‘ 的解决方案

    在函数文件中写入以下内容 function re fun a b varargin if nargin 2 re a b elseif nargin 3 c varargin 1 re a b c else error wrong end
  • 排序法 C语言常考的十大排序法 数列、字符的排序

    通过对近各大试卷题型分析 总结出 对于数据排序的十大方法 希望对大家有所帮助 方法一 冒泡排序法 升序排序法 方法二 选择排序法 方法三 插入排序法 方法四 希尔排序法 Shell Sort 方法五 归并排序法 方法六 快速排序法 交换排序
  • 一文搞懂Python时间序列预测(步骤,模板,python代码)

    预测包括 数值拟合 线性回归 多元回归 时间序列 神经网络等等 对于单变量的时间序列预测 模型有AR MA ARMA ARIMA 综合来说用ARIMA即可表示全部 数据和代码链接 数据和Jupyter文件 以预测美国未来10年GDP的变换情
  • PyTorch指定GPU训练 CUDA_VISIBLE_DEVICES

    方法一 import os import torch os environ CUDA VISIBLE DEVICES 4 5 方法二 CUDA VISIBLE DEVICES 4 python py
  • FPGA零基础学习之Vivado-LED流水灯实验

    FPGA零基础学习之Vivado LED流水灯实验 本系列将带来FPGA的系统性学习 从最基本的数字电路基础开始 最详细操作步骤 最直白的言语描述 手把手的 傻瓜式 讲解 让电子 信息 通信类专业学生 初入职场小白及打算进阶提升的职业开发者
  • QT播放音频方法

    首先需要包含的头文件包含 include
  • opencv 07 用Hausdorff距离做形状匹配(shape_example) vs2015

    01 资源 OpenCV自带的行人检测demo opencv samples cpp shape example cpp shape example cpp可以图形形状相似对比 通过判断Hausdorff距离的结果做出最匹配判断 Hausd
  • Schedule

    Part1背景 定时任务 在我们实际开发中经常会用到 比如 Linux 的 Corntab Django 的 Django celery Django corntab 等 但是这些工具和框架总有某些不合适的地方 比如不灵活 笨重等 今天我们