首页 > 其他分享 >schedule-执行周期性任务

schedule-执行周期性任务

时间:2024-10-21 17:58:33浏览次数:7  
标签:do schedule job 周期性 任务 every 执行

模块介绍

该模块主要用于python的任务调度,使用简便友好的python语法定期运行python函数或者一些其他的调用对象,这个模块就类似于windows的任务计划和linux的crontab,都是用于在服务器上周期性执行某段python脚本。

相较于linux的crontab对比:

  1. schedule模块支持以秒为单位的周期性任务,而crontab只能完成以分钟为单位的。
  2. schedule模块当有很多个任务需要执行时管理起来很方便,直接内嵌到代码当中,crontab还需要每一个脚本去设置一次,增加了复杂度。
  3. 轻量级,无需任何依赖

模块安装

pip install schedule
# pip3 安装
pip3 install schedule

国内安装获取软件包可能会很慢,可以采用国内各大加速进行安装

# 清华大学源
pip install schedule -i https://pypi.tuna.tsinghua.edu.cn/simple	
# 阿里云源
pip install schedule -i https://mirrors.aliyun.com/pypi/simple
# 豆瓣源
pip instal lschedule -i http://pypi.douban.com/simple

模块案例

# 载入模块
import schedule 

# 创建需要的方法
def job():
    print("输出结果")

# 设置执行方法
schedule.every().minutes.do(job)

# 设置循环执行
while True:
    schedule.run_pending()	# 运行定时任务
    time.sleep(1)	# 上一次定时任务执行完后间隔1S再执行第二次

代码解释:以上代码是定义了每分钟执行一次job方法,执行完成后中间间隔一秒执行下一次job方法

模块参数用法

schedule模块提供了多种定时方法,比如按秒、按分钟、按小时、按周、按月、按年等等,都可以进行自定义,针对不同的定时任务选用特定的定时方法。

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

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

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

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

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

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

# 每天执行一次 
schedule.every().day.do(job)

# 每天11点执行一次
schedule.every().day。at("11:00").do(job)

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

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

周一到周日用 monday、tuesday、wednesday、thursday、friday、saturday、sunday

单次执行

上面说的都是重复执行的任务,如果想单词执行一次任务的话,可以return一下就可以了

# 载入模块
import schedule 

# 创建需要的方法
def job():
    print("输出结果")
    return schedule.CancelJob	# 取消执行任务

# 设置执行方法
schedule.every().minutes.do(job)

# 设置循环执行
while True:
    schedule.run_pending()	# 运行定时任务
    time.sleep(1)	# 上一次定时任务执行完后间隔1S再执行第二次

取消指定任务

如果有多个任务想单独某个任务停止执行或者可以设置判断某个情况下停止执行任务

# 载入模块
import schedule 

# 创建需要的方法
def job():
    print("输出结果")
    return schedule.CancelJob	# 取消执行任务

# 设置执行方法
schedule.every().minutes.do(job).tag(job)	# 设置标签为job
schedule.every(10).minutes.do(job).tag(job10)	# 设置标签为job10
schedule.every(20).minutes.do(job).tag(job20)	# 设置标签为job20

schedule.clear('job')	# 取消标签为job的定时任务
# 设置循环执行
while True:
    schedule.run_pending()	# 运行定时任务
    time.sleep(1)	# 上一次定时任务执行完后间隔1S再执行第二次

方法传输参数

# 载入模块
import schedule 

# 创建需要的方法
def job(name):
    print(name)

# 设置执行方法
schedule.every().minutes.do(job, name=job)

# 设置循环执行
while True:
    schedule.run_pending()	# 运行定时任务
    time.sleep(1)	# 上一次定时任务执行完后间隔1S再执行第二次

标签:do,schedule,job,周期性,任务,every,执行
From: https://www.cnblogs.com/blxt/p/18489987/python-schedule

相关文章

  • 在K8S中,有家拥有分布式系统的跨国公司,拥有大量数据中心,虚拟机和许多从事各种任务的员
    对于拥有分布式系统的跨国公司,且该公司拥有大量数据中心、虚拟机以及众多从事各种任务的员工,采用Kubernetes(K8s)来管理所有任务是一种高效且灵活的方式。以下是一些建议,说明该公司如何以与Kubernetes一致的方式管理所有任务:1.利用Kubernetes的容器化特性容器化应用程序:将公司......
  • MoH:融合混合专家机制的高效多头注意力模型及其在视觉语言任务中的应用
    在深度学习领域,多头注意力机制一直是Transformer模型的核心组成部分,在自然语言处理和计算机视觉任务中取得了巨大成功。然而,研究表明并非所有的注意力头都具有同等重要性,许多注意力头可以在不影响模型精度的情况下被剪枝。基于这一洞察,这篇论文提出了一种名为混合头注意力(Mi......
  • 2024-2025 20241323第四周学习任务总结
    这个作业属于https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求https://www.cnblogs.com/rocedu/p/9577842.html#WEEK01这个作业的目标• Pep/9虚拟机• 机器语言与汇编语言• 算法与伪代码• 测试:黑盒,白盒作业正文https://www.cnblogs.com/gly03/p/1848......
  • 多任务学习算法在推荐系统中的应用
    粗略来看,推荐算法可以简单地分为召回和排序两个阶段。召回模块负责从海量的物品库里挑选出用户可能感兴趣的物品子集,过滤之后通常返回几百个物品。排序模块负责对召回阶段返回的物品集个性化排序,通常返回几十个物品组成的有序列表。总结起来,召回和排序有如下特点:召回层:候选集规......
  • YOLOv11改进策略【卷积层】| ECCV-2024 Histogram Transformer 直方图自注意力 适用于
    一、本文介绍本文记录的是利用直方图自注意力优化YOLOv11的目标检测方法研究。在目标检测任务中,清晰准确的图像对于目标检测至关重要,本文创新方法通过恢复图像质量,可以减少因图像质量低导致的误检和漏检,实现有效涨点。专栏目录:YOLOv11改进目录一览|涉及卷积层、轻量化......
  • celery的定时任务
    目录celery定时任务celery链接汇总celery简单使用celery的配置文件示例celery的定时任务celery定时任务fromdatetimeimporttimedeltafromcelery.schedulesimportcrontab#BROKER_URL消息代理,使用redis存储任务BROKER_URL="redis://127.0.0.1:6379/2"#CELERY_R......
  • Java项目集成xxl-job(自动任务)
    官网|代码官网网址:https://www.xuxueli.com/xxl-job/首先:文档很详细,非常清晰,集成到项目中也非常简单进入官网后下拉就是文档按文档一步步一般没有问题,主要说下可能会疑惑的点直接点击1.5在gitee下载代码:http://gitee.com/xuxueli0323/xxl-job代码结构如下:以......
  • flink jobmanager 终止,任务失败问题
    flinkjobmanager终止任务失败问题现象用户flink任务提交客户端侧抛出请求错误,经排查发现是客户端主动cancle的.接着排查yarnapp日志,发现本质错误是jm退出了,接着看jm日志,jm退出是由于失去了leadership导致的排查过程了解背景发现,用户有flinkha任务......
  • TB 级数据入库无压力:Apache DolphinScheduler 助力 ClickHouse 优化
    引言......
  • 【毕业设计】基于SpringBoot + Vue的校园悬赏任务平台系统
    1.引言随着信息技术的飞速发展,越来越多的校园服务从线下转移到线上,尤其是在悬赏任务类服务中,学生通过平台发布任务,其他学生完成任务并获得相应报酬的方式,已经成为一种趋势。然而,传统的任务管理方式在信息处理、任务发布、接收效率上存在诸多弊端。为了适应这一需求,开发一款高......