模块介绍

该模块主要用于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再执行第二次

schedule-执行周期性任务的更多相关文章

  1. python使用sched模块执行周期性任务和定时任务

    执行周期性任务 sched模块是一个通用的事件调度程序,可以对任务进行延迟调度,基于此,可以用它来实现周期性任务. # coding:utf8 import time import sched # 初 ...

  2. java关于Timer schedule执行定时任务 1、在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等

    1.在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等.对于这样的操作最方便.高效的实现方式就是使用java.util.Timer工具类. private java.util.Time ...

  3. ruby执行周期性任务

    1.前言      无论是用ruby做系统管理,还是用rails做web开发,都可能遇到周期性任务,它们按照一定时间周期(1小时,2天......)持续地触发.在ruby中,我认为一次性任务使用sid ...

  4. java关于Timer schedule执行定时任务 !!!!!!!!!

    1.在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等.对于这样的操作最方便.高效的实现方式就是使用java.util.Timer工具类. private java.util.Time ...

  5. python 定时器schedule执行任务

    import schedule import time """英文版书籍:<essential sqlalchemy>,这本书讲了很多在每天某个指定的时间点上 ...

  6. JAVA线程池ScheduledExecutorService周期性地执行任务 与单个Thread周期性执行任务的异常处理

    本文记录: 1,使用ScheduledExecutorService的 scheduleAtFixedRate 方法执行周期性任务的过程,讨论了在任务周期执行过程中出现了异常,会导致周期任务失败. 2 ...

  7. Linux任务计划、周期性任务执行

    Linux任务计划.周期性任务执行 周期性任务执行: cron 守护进程(crond):服务,不间断地运行于后台 # service crond {start|stop|status|restart} ...

  8. Rails 定时任务——whenever实现周期性任务

    根据项目的进展,我们需要实现后台进行定时读取信息的功能,而最关键的实现部分是周期性功能,根据调研,决定使用whenever来实现这一功能. github:https://github.com/java ...

  9. Python3.6 Schedule模块定时任务

    本文使用Python的Schedule模块.Python访问数据库的框架SQLAIchemy 实现了一个:周期性读取mysql 数据的小示例. 一,编程环境 PyCharm2016,Anaconda3 ...

  10. mysql 定时任务执行

    SET GLOBAL event_scheduler = ON; show variables like 'event_scheduler'; event_scheduler ON 创建event: ...

随机推荐

  1. 【转载】Typora 的 Markdown 语法

    原文地址: Typora 的 Markdown 语法 详细见原文: https://support.typoraio.cn/zh/Markdown-Reference/

  2. 编译python扩展模块报错:-ltensorflow_framework

    参考: https://blog.csdn.net/u012947309/article/details/116736684 ===================================== ...

  3. PyTorch视觉模型库torchvision.models介绍

    安装pytorch时我们一般都是会一并选择安装自带的视觉模型库 torchvision ,  该库不仅有经典的视觉模型结构同时还提供了对应参数的下载功能,可以说torchvision库是十分方便于研究 ...

  4. ReentrantLock之Condition源码解读

    1.背景 阅读该源码的前提是,已经阅读了reentrantLock的源码! 2.await源码解读 condition代码理解的核心,其实就是理解到: 线程节点如何从sync双向链表队列到指定的条件队 ...

  5. LLM大模型部署实战指南:Ollama简化流程,OpenLLM灵活部署,LocalAI本地优化,Dify赋能应用开发

    LLM大模型部署实战指南:Ollama简化流程,OpenLLM灵活部署,LocalAI本地优化,Dify赋能应用开发 1. Ollama 部署的本地模型() Ollama 是一个开源框架,专为在本地机 ...

  6. 使用一次sql请求,返回分页数据和总条数

    日常搬砖,总少不了需要获取分页数据和总行数. 一直以来的实践是编码两次sql请求,分别拉分页数据和totolCount. 最近我在思考: 常规实践为什么不是 在一次sql请求中中执行多次sql查询或多 ...

  7. Camera | 9.如何让camera支持闪光灯?-基于rk3568

    一.闪光灯基本原理 工作模式 Camera flash led分flash和torch两种模式. flash: 拍照时上光灯瞬间亮一下,电流比较大,目前是1000mA,最大电流不能超过led最大承受能 ...

  8. SPI协议,MCP2515裸机驱动详解

    SPI概述 Serial Peripheral interface 通用串行外围设备接口 是Motorola首先在其MC68HCXX系列处理器上定义的.SPI接口主要应用在 EEPROM,FLASH, ...

  9. JavaScript设计模式样例十七 —— 迭代器模式

    迭代器模式(Itrator Pattern) 定义:用于顺序访问集合对象的元素,不需要知道集合对象的底层表示.目的:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示.场景:$ ...

  10. 【Mac + Appium + Java1.8(二)】之Android模拟器自动化测试脚本开发以及简易例子

    直接上代码: import io.appium.java_client.AppiumDriver; import org.junit.After; import org.junit.Before; i ...