简单的Python调度器Schedule详解

 更新时间:2019年08月30日 09:42:01   作者:hylinux1024  
这篇文章主要介绍了简单的Python调度器Schedule详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

最近在做项目的时候经常会用到定时任务,由于我的项目是使用Java来开发,用的是SpringBoot框架,因此要实现这个定时任务其实并不难。

后来我在想如果我要在Python中实现,我要怎么做呢?

一开始我首先想到的是Timer

Timer

这个是一个扩展自threading模块来实现的定时任务。它其实是一个线程。

# 首先定义一个需要定时执行的方法
>>> def hello():
  print("hello!")
# 导入threading,并创建Timer,设置1秒后执行hello方法
>>> import threading
>>> timer = threading.Timer(1,hello)
>>> timer.start()
# 1秒后打印
>>> hello!

这个内置的工具使用起来也简单,对于熟悉Java的同学来说也是非常容易的。然而我一直能否有一个更加Pythonic的工具或者类库呢?

这时我看到一篇文章介绍Scheduler类库的使用,突然觉得这就是我想要的

Scheduler

要使用这个库先使用以下命令进行安装

pip install schedule

schedule模块中的方法可读性非常好,而且支持链式调用

import schedule
# 定义需要执行的方法
def job():
  print("a simple scheduler in python.")
# 设置调度的参数,这里是每2秒执行一次
schedule.every(2).seconds.do(job)
if __name__ == '__main__':
  while True:
    schedule.run_pending()
# 执行结果
a simple scheduler in python.
a simple scheduler in python.
a simple scheduler in python.
...

其它设置调度参数的方法

# 每小时执行
schedule.every().hour.do(job)
# 每天12:25执行
schedule.every().day.at("12:25").do(job)
# 每2到5分钟时执行
schedule.every(5).to(10).minutes.do(job)
# 每星期4的19:15执行
schedule.every().thursday.at("19:15").do(job)
# 每第17分钟时就执行
schedule.every().minute.at(":17").do(job)

如果要执行的方法需要参数呢?

# 需要执行的方法需要传参
def job(val):
  print(f'hello {val}')
# schedule.every(2).seconds.do(job)
# 使用带参数的do方法
schedule.every(2).seconds.do(job, "hylinux")

# 执行结果
hello hylinux
hello hylinux
hello hylinux
hello hylinux
hello hylinux
hello hylinux
...

是不是很简单?

学习资料

https://bhupeshv.me/A-Simple-Scheduler-in-Python/

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • python爬虫框架scrapy代理中间件掌握学习教程

    python爬虫框架scrapy代理中间件掌握学习教程

    这篇文章主要介绍了python爬虫框架scrapy代理中间件掌握学习教程,为大家说明一下 scrapy 中代理相关知识点,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-11-11
  • python中的exec()、eval()及complie()示例详解

    python中的exec()、eval()及complie()示例详解

    这篇文章主要介绍了python中的exec()、eval()及complie(),本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • Python中tkinter库的简单使用

    Python中tkinter库的简单使用

    这篇文章主要介绍了Python中tkinter库的简单使用,Tkinter是Python中常用的GUI库,它使用Tk GUI工具包,并提供了创建各种GUI应用程序的功能,需要的朋友可以参考下
    2023-10-10
  • python使用form-data形式上传文件请求的方法

    python使用form-data形式上传文件请求的方法

    Python中的multipart/form-data是一种HTTP POST请求的数据格式,用于上传文件或二进制数据,下面这篇文章主要给大家介绍了关于python使用form-data形式上传文件请求的相关资料,需要的朋友可以参考下
    2023-04-04
  • python中的tcp示例详解

    python中的tcp示例详解

    这篇文章主要给大家介绍了关于python中tcp协议的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • Python天气预报采集器实现代码(网页爬虫)

    Python天气预报采集器实现代码(网页爬虫)

    这个天气预报采集是从中国天气网提取广东省内主要城市的天气并回显。本来是打算采集腾讯天气的,但是貌似它的数据是用js写上去还是什么的,得到的html文本中不包含数据,所以就算了
    2012-10-10
  • 10 个Python中Pip的使用技巧分享

    10 个Python中Pip的使用技巧分享

    众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。本文小编为大家总结了Python中Pip的使用技巧,需要的可以参考一下
    2022-07-07
  • pytorch保存和加载模型的方法及如何load部分参数

    pytorch保存和加载模型的方法及如何load部分参数

    本文总结了pytorch中保存和加载模型的方法,以及在保存的模型文件与新定义的模型的参数不一一对应时,我们该如何加载模型参数,对pytorch保存和加载模型相关知识感兴趣的朋友一起看看吧
    2024-03-03
  • django写单元测试的方法

    django写单元测试的方法

    这篇文章主要介绍了django写单元测试的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • mac下如何将python2.7改为python3

    mac下如何将python2.7改为python3

    这篇文章主要介绍了mac下如何将python2.7改为python3,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07

最新评论