最近在做项目的时候经常会用到定时任务,由于我的项目是使用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

...

是不是很简单?

学习资料

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

时间: 2019-08-28

python 贴吧调度器_简单的Python调度器Schedule详解相关推荐

  1. python简单装饰器_简单介绍Python装饰器(一)

    装饰器的作用 相信大家在 探索过程中已经了解装饰器的作用,也有很多花里胡哨的介绍. 这次小冰也来讲解一下关于Python装饰器的一些小知识. 它的作用: 性能测试 日志 安全验证 ...... 相信大 ...

  2. python编写接口自动化脚本_简单的python http接口自动化脚本

    摘抄:今天给大家分享一个简单的python脚本,使用python进行http的接口测试,脚本很简单,逻辑是:读取excel写好的测试用例,然后根据excel中的用例内容进行调用,判断预期结果中的返回值 ...

  3. python函数分几种_简单了解Python中的几种函数

    python是支持多种范型的语言,可以进行所谓函数式编程,其突出体现在有这么几个函数: filter.map.reduce.lambda.yield lambda lambda函数的使用方法:在lam ...

  4. python字符串前面加上序号_简单了解python字符串前面加r,u的含义

    这篇文章主要介绍了简单了解python字符串前面加r,u的含义,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 u/U:表示unicode字符串 不是 ...

  5. python人脸识别系统下载_简单的Python人脸识别系统

    案例一 导入图片 思路: 1.导入库 2.加载图片 3.创建窗口 4.显示图片 5.暂停窗口 6.关闭窗口 # 1.导入库 import cv2 # 2.加载图片 img = cv2.imread(' ...

  6. python协同过滤调用包_简单的python协同过滤程序实例代码

    本文研究的主要是python协同过滤程序的相关内容,具体介绍如下. 关于协同过滤的一个最经典的例子就是看电影,有时候不知道哪一部电影是我们喜欢的或者评分比较高的,那么通常的做法就是问问周围的朋友,看看 ...

  7. [转载] python中的且语句_简单探讨python中的语句和语法

    参考链接: 在Python中解包:并行分配之外 python程序结构 python"一切皆对象",这是接触python听到最多的总结了.在python中最基层的单位应该就是对象了, ...

  8. python类和对象课件_简单解释Python的类和对象

    前言: 对象是模拟真实世界,把数据和程序进行封装 . 对象 = 属性+ 方法 我们需要用类来创造一个对象,就像我们要用图纸来造房子一样.在Python中函数名是以小写字母开头 ,类名是以大写字母开头. ...

  9. python闭包的应用场景_简单谈谈Python中的闭包

    Python中的闭包 前几天又有人留言,关于其中一个闭包和re.sub的使用不太清楚.我在脚本之家搜索了下,发现没有写过闭包相关的东西,所以决定总结一下,完善Python的内容. 1. 闭包的概念 首 ...

  10. python协程异步原理_简单介绍Python的Tornado框架中的协程异步实现原理

    Tornado 4.0 已经发布了很长一段时间了, 新版本广泛的应用了协程(Future)特性. 我们目前已经将 Tornado 升级到最新版本, 而且也大量的使用协程特性. 很长时间没有更新博客, ...

最新文章

  1. js title 单选框 获取_js简单获取表单中单选按钮值的方法
  2. Jmeter脚本录制(Web)
  3. input高级限制级用法
  4. python 编译成exe黑屏_python''外星人入侵''打包成exe遇到的问题和解决办法,闪退,黑屏。...
  5. iOS开发--底部按钮和应用图标显示未读消息
  6. net core获取客户端ip
  7. BOM offset client scroll
  8. Ubuntu20安装向日葵
  9. HD TUNE 下载使用
  10. 【自然语言处理】【聚类】ECIC:通过迭代分类增强短文本聚类
  11. 互联网+双“高新”时代
  12. python爬取b站弹幕分析_B站弹幕爬取原理解析(python)
  13. 2021-6-9-今日收获
  14. 漫步者蓝牙只有一边有声音_为什么我蓝牙耳机只有一边有声音?
  15. 阿piu传-文档批量上传客户端-原创力版使用帮助
  16. VB6编程:DirectX 2D图形学习日志20伽玛校正
  17. 人力资源后台管理系统之合同—— 电子签章功能
  18. Maven编译失败: zip file is empty
  19. 我的世界java手机版怎么调按键_我的世界怎么改移动控制键
  20. 计算机的硬盘系统是由什么组成,硬盘的工作原理是什么,由哪些部件组成?

热门文章

  1. Python Revisited Day 09 (调试、测试与Profiling)
  2. UVa 10900 - So you want to be a 2n-aire?(期望DP)
  3. 时分多路数字电话基带传输系统
  4. 使用RandomAccessFile读写数据
  5. 给大家推荐一本书啊啊~
  6. Lua 学习笔记(七)编译、执行外部代码块
  7. OEMAddressTable介绍(转)
  8. 适合自己的才是最好的
  9. 页面报错webform_postbackoptions未定义
  10. 【学堂在线数据挖掘:理论方法笔记】第八天(4.2)