python的定时任务模块--schedule
首先先安装一下模块

下面我们简单的学习一下schedule模块
先简单的看个示例
import schedule
def test(*args,**kwargs):
print("hello world 1",datetime.datetime.now())
schedule.every(1).minute.do(test)
while True:
schedule.run_pending()
结果如下,我们可以看到,每隔一分钟执行了一次test这函数

然后我们在看下一个例子
import schedule
import time
def test1(*args,**kwargs):
print("这是test1的函数")
time.sleep(5)
print("这是test1的函数",datetime.datetime.now())
def test2(*args,**kwargs):
print("这是test2的函数")
time.sleep(5)
print("这是test2的函数",datetime.datetime.now())
schedule.every(10).seconds.do(test1)
schedule.every(10).seconds.do(test2)
while True:
schedule.run_pending()
结果如下
这是test2的函数
这是test2的函数 2019-02-11 09:33:55.615493
这是test1的函数
这是test1的函数 2019-02-11 09:34:00.623102
这是test2的函数
这是test2的函数 2019-02-11 09:34:10.638319
这是test1的函数
这是test1的函数 2019-02-11 09:34:15.645928
这是test2的函数
这是test2的函数 2019-02-11 09:34:25.661146
这是test1的函数
这是test1的函数 2019-02-11 09:34:30.668755
这是test2的函数
这是test2的函数 2019-02-11 09:34:40.683972
这是test1的函数
这是test1的函数 2019-02-11 09:34:45.691581
这是test2的函数
这是test2的函数 2019-02-11 09:34:55.706799
这是test1的函数
这是test1的函数 2019-02-11 09:35:00.714407
这是test2的函数
这是test2的函数 2019-02-11 09:35:10.729625
这是test1的函数
这是test1的函数 2019-02-11 09:35:15.737234
这是test2的函数
这是test2的函数 2019-02-11 09:35:25.752451
这是test1的函数
这是test1的函数 2019-02-11 09:35:30.760060
这是test2的函数
这是test2的函数 2019-02-11 09:35:40.775278
这是test1的函数
从结果我们可以很清晰的看到,执行test1和test2两个函数,不是每隔10s执行一次,而是每隔15s执行一次,所以我们可以理解,schedule模块如果去同时执行多个函数的话,这些不同的函数不是开启多线程并行执行的,而是串行执行的,为了解决这个问题,我们可以用到python的多线程模块来解决这个问题
下面我们就通过多线程模块来解决这个问题
import schedule
import threading import time
def test1(*args,**kwargs):
print("这是test1的函数")
time.sleep(5)
print("这是test1的函数",datetime.datetime.now()) def test2(*args,**kwargs):
print("这是test2的函数")
time.sleep(5)
print("这是test2的函数",datetime.datetime.now()) def sch_test1():
threading.Thread(target=test1).start() def sch_test2():
threading.Thread(target=test2).start() schedule.every(10).seconds.do(sch_test1)
schedule.every(10).seconds.do(sch_test2) while True:
schedule.run_pending()
结果如下
这是test1的函数
这是test2的函数
这是test2的函数 2019-02-11 09:42:03.022749
这是test1的函数 2019-02-11 09:42:03.022749
这是test2的函数
这是test1的函数
这是test2的函数 2019-02-11 09:42:13.037967
这是test1的函数 2019-02-11 09:42:13.053567
这是test1的函数
这是test2的函数
这是test2的函数 2019-02-11 09:42:23.053184
这是test1的函数 2019-02-11 09:42:23.068784
这是test1的函数
这是test2的函数
这是test2的函数 2019-02-11 09:42:33.068402
这是test1的函数 2019-02-11 09:42:33.068402
这是test1的函数
这是test2的函数
这是test1的函数 2019-02-11 09:42:43.083620
这是test2的函数 2019-02-11 09:42:43.083620
这是test2的函数
这是test1的函数
这是test2的函数 2019-02-11 09:42:53.098837
这是test1的函数 2019-02-11 09:42:53.114437
这是test2的函数
这是test1的函数
这是test1的函数 2019-02-11 09:43:03.114055
这是test2的函数 2019-02-11 09:43:03.114055
这是test1的函数
这是test2的函数
这是test2的函数 2019-02-11 09:43:13.129272
这是test1的函数 2019-02-11 09:43:13.160472
这是test1的函数
这是test2的函数
这是test1的函数 2019-02-11 09:43:23.144490
这是test2的函数 2019-02-11 09:43:23.144490
从上面的结果我们可以看到,2个函数之间没有干扰了,每隔10s后分别执行了2个函数
python的定时任务模块--schedule的更多相关文章
- python:定时任务模块schedule
1.安装 pip install schedule 2.文档 https://schedule.readthedocs.io/en/stable/faq.html#how-to-execute-job ...
- 定时任务模块 schedule
# coding:utf-8 from learning_python.Telegram_push.check_hardware import check_cpu import schedule im ...
- python实现定时任务
定时任务的实现方式有很多种,如windows服务,借助其他定时器jenkins运行脚本等方式.本文介绍的是python中的一个轻量级模块schedule. 安装 pip命令:pip install s ...
- ansible定时任务模块和用户组模块使用
接上篇,还是一些基础模块的使用,这里主要介绍的是系统模块的使用. 下面例子都进行过相关的实践,从而可以直接进行使用相关的命令. 3.用户模块的使用 用户模块主要用来管理用户账号和用户的属性(对远程主机 ...
- Python源码学习Schedule
关于我 一个有思想的程序猿,终身学习实践者,目前在一个创业团队任team lead,技术栈涉及Android.Python.Java和Go,这个也是我们团队的主要技术栈. Github:https:/ ...
- 【转】Python源码学习Schedule
原文:https://www.cnblogs.com/angrycode/p/11433283.html ----------------------------------------------- ...
- python的库有多少个?python有多少个模块?
这里列举了大概500个左右的库: ! Chardet字符编码探测器,可以自动检测文本.网页.xml的编码. colorama主要用来给文本添加各种颜色,并且非常简单易用. Prettytable主 ...
- python之platform模块
python之platform模块 ^_^第三个模块从天而降喽!! 函数列表 platform.system() 获取操作系统类型,windows.linux等 platform.platform() ...
- python之OS模块详解
python之OS模块详解 ^_^,步入第二个模块世界----->OS 常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows ...
随机推荐
- Django - cookies 会话跟踪技术
一.HTTP协议的无状态保存 两次请求之间没有关联 会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应 2.会话路径技术使用Cookie或session完成 我们知道HTTP ...
- 【373】LabelEncoder 相关
OneHotEncoder独热编码和 LabelEncoder标签编码 pandas.DataFrame.groupby
- IPv4和IPv6的差异;如何实现IPv4和IPv6双协议栈的通信
1 IPv4和IPv6的差异 1.1 地址空间 IPv6 与 IPv4 比较最显著的一个改动就是使用 128 比特上的地址来代替了 32 比特长的 IPv4 地址. IPv6 中取消了广播地址, ...
- 16.监听器-基础.md
目录 概念 监听器功能 监听创建或销毁 监听属性变化 session相关监听 概念 实现特定接口的普通java类 *监听特定对象的创建.销毁或属性变化: 对象自己创建自己用:无需监听 对象别人创建自己 ...
- C# 图像处理:Bitmap 与 Image 之间的转换
Image img = this.pictureBox1.Image; Bitmap map = new Bitmap(img); Image img = Bitmap; Image和Bitmap类概 ...
- 初识Swift中的值和引用,循坏引用、代理的注意点
1.0 在Swift中分有值类型和引用类型 Int .String . 结构体和枚举都属于值类型, 将值类型传递给方法是,将在内存中创建其副本,并传递这个副本:这样我们就可以随心所欲修改它,而不用担心 ...
- python基础学习Day14 内置函数 匿名函数
一.内置函数里几个高频重要函数 (1)min\max函数的用法 以min函数的为例: min:返回可迭代对象的最小值(可加key,key为函数名,通过函数的规则,返回最小值). l1 =[(,),(, ...
- 源码编译安装Python3及问题解决
https://chowyi.com/%E6%BA%90%E7%A0%81%E7%BC%96%E8%AF%91%E5%AE%89%E8%A3%85Python3%E5%8F%8A%E9%97%AE%E ...
- 解决iframe在iphone不兼容的问题
<div class="scroll-wrapper"> <iframe src="地址"></iframe> </d ...
- tomcat支持 https
首先 安装nginx ,在nginx.conf 中引入 include /app/conf/nginx/vhosts/*.conf; 配置 并在conf/vhosts 目录 中配置virtual.c ...