详细讲解Python中的aioschedule定时任务操作

目录

  • 前言
  • 1. 基本概念
  • 2. 基本API
  • 3. Demo

前言

如果下面的函数库无法执行,出现类似:(前提是python3.7以上)

AttributeError: module ‘asyncio‘ has no attribute ‘run‘

请检查run是否可跳转,如果无法跳转,尝试安装asyncio版本号为最新:pip install asuncio==3.4.3

1. 基本概念

aioschedule 是一个基于 asyncio 的 Python 库,用于在异步应用程序中进行任务调度。

它提供了一种方便的方式来安排和执行异步任务,类似于传统的 schedule 库,但适用于异步编程。

先科普下schedule
aioschedule 和 schedule 都是用于任务调度的 Python 库,但它们在异步和同步

编程环境执行方式依赖环境
schedule 适用于同步编程环境schedule 使用阻塞式的方式执行任务schedule 不依赖 asyncio 库
aioschedule 适用于异步编程环境aioschedule 使用非阻塞的异步方式执行任务aioschedule 基于 asyncio

两者的代码相似:

import schedule
import time

def job():
    print("Job executed!")

# 注册每隔5秒执行一次的任务
schedule.every(5).seconds.do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

另一个:

import asyncio
import aioschedule

async def job():
    print("Job executed!")

# 注册每隔5秒执行一次的任务
aioschedule.every(5).seconds.do(job)

async def main():
    while True:
        await aioschedule.run_pending()
        await asyncio.sleep(1)

asyncio.run(main())

2. 基本API

aioschedule 提供了一些常用的 API 来实现任务调度。

常用的API如下:

  • every(interval): 用于指定任务执行的时间间隔。
aioschedule.every(5).seconds.do(job)
  • do(job_function, *args, **kwargs): 用于注册要执行的任务函数,可以传递参数给任务函数。
aioschedule.every(10).minutes.do(job, arg1, kwarg1='value')
  • to(target): 用于指定任务执行的终止时间,即任务不再执行的时间点。
aioschedule.every().day.at("14:30").do(job).to("15:00")
  • tag(tag): 为任务添加标签,可以通过标签取消任务。
aioschedule.every().hour.do(job).tag('hourly')
  • cancel(tag): 取消具有指定标签的所有任务。
aioschedule.cancel('hourly')
  • run_pending(): 执行所有待处理的任务。
await aioschedule.run_pending()
  • clear(tag=None): 清除所有任务或特定标签的任务。
aioschedule.clear()
# 或
aioschedule.clear('daily')

3. Demo

示例代码如下:

import asyncio
import aioschedule

async def job():
    print("Job executed!")

# 注册任务,每隔5秒执行一次
aioschedule.every(1).seconds.do(job)

async def main():
    # 异步等待,保持主程序运行
    while True:
        await aioschedule.run_pending()
        await asyncio.sleep(1)

# 运行主程序
asyncio.run(main())

截图如下:

在这里插入图片描述

另一个Demo:

import asyncio
import aioschedule

async def job(name, count):
    print(f"Job {name} executed {count} times!")

# 注册每隔3秒执行一次的任务,并传递参数
aioschedule.every(3).seconds.do(job, 'TaskA', count=1)

# 注册每隔5秒执行一次的任务,并传递参数
aioschedule.every(5).seconds.do(job, 'TaskB', count=1)

# 注册每小时执行一次的任务,并传递参数
aioschedule.every().hour.do(job, 'TaskC', count=1)

async def main():
    # 异步等待,保持主程序运行
    for i in range(10):
        # 执行所有待处理的任务
        await aioschedule.run_pending()

        # 异步等待1秒,防止事件循环阻塞
        await asyncio.sleep(1)

# 运行主程序
asyncio.run(main())

截图如下:

在这里插入图片描述

实战中的Demo也大同小异:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/328136.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Jenkins实现基础CI操作配合python

条件: gitlab准备好 jenkins准备好 (不会java项目, 故跳过Maven打jar包) jenkins配置 在配置里通过插件Git Parameter配置Git,以便于从gitlab 拉去代码到Jenkins r容器内 /var/jenkins_home/ 刚接触python 项目好像不需要构建,直接推送到远…

深度学习弱光图像增强入门学习贴及相关可参考工作推荐

0 引言 先表明身份,在过去三年的时间里,发表弱光图像增强的SCI工作多篇,后续会在Github的代码库构建好之后,分享代码链接,欢迎关注(由于工作过于垃圾,因此咱还是以大佬的工作作为参考 首先&am…

推荐一款低成本半桥驱动器集成电路 SIC631CD-T1-GE3

SIC631CD-T1-GE3 是经过优化的集成功率级解决方案用于同步降压应用,提供大电流、高电压效率高,功率密度高。使电压调节器设计能够提供高达50 A的电流每相持续电流。内部功率MOSFET利用Vishay的最先进的第四代TrenchFET技术行业基准绩效将显著降低开关和传…

深入浅出Spring AOP

第1章:引言 大家好,我是小黑,咱们今天要聊的是Java中Spring框架的AOP(面向切面编程)。对于程序员来说,理解AOP对于掌握Spring框架来说是超级关键的。它像是魔法一样,能让咱们在不改变原有代码的…

XSS漏洞:prompt.mi靶场通关

xss系列往期文章: 初识XSS漏洞-CSDN博客 利用XSS漏洞打cookie-CSDN博客 XSS漏洞:xss-labs靶场通关-CSDN博客 目录 第0关 第1关 第2关 第3关 第4关 第5关 第6关 第7关 第8关 第9关 第A关 第B关 第C关 第D关 第E关 第F关 上一篇文章给…

c语言将csv文件中的XY轴数据转换为html波形图

目标: c语言实现一个最简化的csv转html波形图显示方案。 csv文件格式: 共两行数据,第一行是x轴数据,第二行是y轴数据。 csv文件名分为3段: 波形图名称,x轴名称,y轴名称。 c代码: int csv2html…

springboot集成shiro+前端vue,前后端分离项目遇到跨域以及sessionid拿不到等问题

近期在写前后端分离的项目,由于前后端分离导致原来使用的shiro配置无法满足现有系统要求。同时在前后端分离项目中存在的一些问题。例如,一些用户信息需要存储在后端方便进行安全性判断,但这些存储在后端的session前端却获取不到(…

开发知识点-java基础

java基础知识整理 windows 多版本java jar包不能直接打开 需要java -jar问题解决 windows 多版本 控制面板 java15 download 多版本 https://www.cnblogs.com/chenmingjun/p/9941191.html https://gitee.com/shixinke/JC-jEnv/repository/archive/master.zip java jar包不…

2024年AMC8历年真题练一练和答案详解(10),以及全真模拟题

六分成长继续为您分享AMC8历年真题,最后两天通过高质量的真题来体会快速思考、做对题目的策略。 题目从575道在线题库(来自于往年真题)中抽取5道题,每道题目均会标记出自年份和当年度的序号,并附上详细解析。【使用六…

CUDA tips

命令行查看核函数消耗的寄存器和共享内存数量 nvcc --ptxas-options-v reduce_sum.cu nvprof 使用 由于 8.0 及以上计算能力的显卡用不了 nvprof,官方建议用 nsight system 和 ncu,但是如果只想命令行打印表格查看 kernel 概况感觉还是 nvprof 方便&am…

三个方法解决pycharm中 ,alt +enter自动导入包的快捷键失效的问题

目录 1. 检查IDE设置:查看IDE的设置,确保自动导入包的功能是启用的 2. file>settings>keymap 里没有找到 alt enter 的快捷键 3. 按照网上教程说的如下选项勾上,也没用 4. 在右侧的General设置界面中,找到并点击Auto I…

YOLOv5改进 | 2023主干篇 | 多种轻量化卷积优化PP-HGNetV2改进主干(全网独家创新)

一、本文介绍 Hello,大家好,上一篇博客我们讲了利用HGNetV2去替换YOLOv5的主干,经过结构的研究我们可以发现在HGNetV2的网络中有大量的卷积存在,所以我们可以用一种更加轻量化的卷积去优化HGNetV2从而达到更加轻量化的效果(亲测优化后的HGNetV2网络比正常HGNetV2精度更高…

Mac OS系统 SVN客户端 smartSVN 安装和基础使用

一、下载SVN客户端 官网地址,可以根据自己的系统下载 https://www.smartsvn.com/download/ 二、安装客户端和激活 第一步安装,很简单。 第二步,激活,选择激活文件 创建一个许可文件,例如 smartSvn.license。 内容如…

RabbitMQ交换机(1)

1.交换机Exchange RabbitMQ消息传递模型的核心思想是: 生产者生产的消息从不会直接发送到队列。实际上,通常生产者甚至都不知道这些消息传递传递到了哪些队列中。 相反,生产者只能将消息发送到交换机(exchange),交换机工作的内容非常简单&am…

PDF有编辑密码怎么办

目录 注意: windows方法: 1 python 下载 2 打开命令行 3 安装 pikepdf 4 编写python脚本 5 使用py脚本 6解密完成 Linux方法: 注意: 此方法可以用于破解PDF的编辑密码,而不是PDF的打开密码 当遇到类似如下问…

Matlab交互式的局部放大图

在数据可视化中,很多时候需要对某一区间的数据进行局部放大,以获得对比度更高的可视化效果。下面利用 MATLAB 语言实现一个交互式的局部放大图绘制。 源码自行下载: 链接:https://pan.baidu.com/s/1yItVSinh6vU4ImlbZW6Deg?pwd9d…

【机器学习300问】10、学习率设置过大或过小对训练有何影响?

在上一篇文章中,首次出现了学习率这个词,在这篇文章中我会详细介绍一下它是什么,到底对机器学习的训练有着怎样的影响。 一、学习率是什么? 先来复习一下梯度下降算法,在每次迭代过程中,算法计算目标函数关…

给WordPress网站增加一个带时间的led广告牌

WordPress 后台》外观》小工具》自定义html》添加到合适位置 其他系统可自行添加合适位置 <style type"text/css">.studytextgzbox {background: #F9F9F9; border: 1px solid #999999;margin: 1px;text-align:center; float: left;line-height: 28px;hei…

WordPress回收站自动清空时间?如何关闭回收站或设置自动清理天数?

我们在WordPress后台的文章、页面、评论等页面都可以看到有回收站&#xff0c;意思就是我们不能直接删除某篇文章、页面、评论&#xff0c;而是需要现将它们移至回收站&#xff0c;然后再到回收站永久删除&#xff0c;或等回收站自动清理。 如上图所示&#xff0c;WordPress 6.…

【机组】算术逻辑运算单元实验的解密与实战

​&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《机组 | 模块单元实验》⏰诗赋清音&#xff1a;云生高巅梦远游&#xff0c; 星光点缀碧海愁。 山川深邃情难晤&#xff0c; 剑气凌云志自修。 ​ 目录 &#x1f33a; 一、 实验目的…
最新文章