iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python3学习(八):使用sched
  • 188
分享到

Python3学习(八):使用sched

sched 2023-01-31 01:01:43 188人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

python中有一个轻量级的定时任务调度的库:schedule。他可以完成每分钟,每小时,每天,周几,特定日期的定时任务。因此十分方便我们执行一些轻量级的定时任务。 代码如下: import schedule import time

python中有一个轻量级的定时任务调度的库:schedule。他可以完成每分钟,每小时,每天,周几,特定日期的定时任务。因此十分方便我们执行一些轻量级的定时任务。

代码如下:


import schedule
import time
 
def job():
    print("I'm working...")
 
schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)
schedule.every(5).to(10).days.do(job)
schedule.every().monday.do(job)
schedule.every().wednesday.at("13:15").do(job)
 
while True:
    schedule.run_pending()
    time.sleep(1)

上面的意思就是:

每隔十分钟执行一次任务

每隔一小时执行一次任务

每天的10:30执行一次任务

每隔5到10天执行一次任务 

每周一的这个时候执行一次任务

每周三13:15执行一次任务

run_pending:运行所有可以运行的任务

 

当然,如果函数中带有参数怎么办呢?

很简单,如下所示:


import schedule
import time
 
def job(name):
    print("her name is : ", name)

name = xiaona
schedule.every(10).minutes.do(job, name)
schedule.every().hour.do(job, name)
schedule.every().day.at("10:30").do(job, name)
schedule.every(5).to(10).days.do(job, name)
schedule.every().monday.do(job, name)
schedule.every().wednesday.at("13:15").do(job, name)
 
while True:
    schedule.run_pending()
    time.sleep(1)

 

疑问解答:

最近有人问我while True之类的是什么意思,很简单,如果你去掉while True这个死循环的话,schedule.run_pending()是没有办法持续运行的,那么schedule.run_pending()是个什么东西呢——

schedule其实就只是个定时器。在while True死循环中,schedule.run_pending()是保持schedule一直运行,去查询上面那一堆的任务,在任务中,就可以设置不同的时间去运行。跟linux中设置crontab定时任务是类似的。

所以,schedule有一定的局限性,所以只能用来执行一些小型的定时任务,它的局限性在哪呢——

1.需要定时运行的函数job不应当是死循环类型的,也就是说,这个线程应该有一个执行完毕的出口。一是因为线程万一僵死,会是非常棘手的问题;二是下一次定时任务还会开启一个新的线程,执行次数多了就会演变成灾难。

2.如果schedule的时间间隔设置得比job执行的时间短,一样会线程堆积形成灾难,也就是说,我job的执行时间是1个小时,但是我定时任务设置的是5分钟一次,那就会一直堆积线程。

--结束END--

本文标题: Python3学习(八):使用sched

本文链接: https://www.lsjlt.com/news/184695.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python3学习(八):使用sched
    python中有一个轻量级的定时任务调度的库:schedule。他可以完成每分钟,每小时,每天,周几,特定日期的定时任务。因此十分方便我们执行一些轻量级的定时任务。 代码如下: import schedule import time ...
    99+
    2023-01-31
    sched
  • 学习笔记-小甲鱼Python3学习第八讲
    按照100分制,90分以上成绩为A,80到90为B,60到80为C,60以下为D,写一个程序,当用户输入分数,自动转换为ABCD的形式打印。使用if 条件:...elif 条件:...else...循环fenshu0 = input('请输...
    99+
    2023-01-31
    甲鱼 学习笔记 第八讲
  • 学习笔记-小甲鱼Python3学习第十八
    形参和实参>>>def MyFirstFunction(name):            '函数定义过程中的name是形参'            #因为它只是一个形式,表示占据一个参数位置            pri...
    99+
    2023-01-31
    甲鱼 学习笔记
  • python学习——【第八弹】
    前言 上篇文章 python学习——【第七弹】学习了python中的可变序列集合,自此python中的序列的学习就完成啦,这篇文章开始学习python中的函数。 函数 在学习其他编程语言的时候我们就...
    99+
    2023-09-26
    python 学习 开发语言 压栈 函数
  • python3学习(1)
    判断编码格式 import chardetchardet.detect("abc迭代".encode("gbk"))#需要加encode{'encoding': 'ISO-8859-1', 'confidence': 0.73, 'l...
    99+
    2023-01-31
  • Python3学习(2)
    字符串赋值引用特性同一个字符串赋值给不同的变量,所有变量都是同一个对象 s = "abc"s1 = "abc"id(s)34707248 id(s1)34707248 id("abc")34707248 s is s1True ...
    99+
    2023-01-31
  • python3学习(3)
    练习题:1. 26个字母大小写成对打印,例如:Aa,Bb.... for i in range(65,91): print(chr(i)+chr(i+32)+",",end="") 2、一个list包含10个数字,然后生成新的lis...
    99+
    2023-01-31
  • python 学习 第八篇 jquery
    简介:jQuery是一个javascript库。极大滴简化了javascript编程。包含内容:HTML 元素选取HTML 元素操作CSS 操作HTML 事件函数JavaScript 特效和动画HTML DOM 遍历和修改AJAX1:下载 ...
    99+
    2023-01-31
    第八篇 python jquery
  • python3学习之练习题
    题目来自老男孩培训:作业1:信用卡程序功能要求(必须):1.额度15000,不可超额透支(用户ID,账号,密码,额度写入文件中)2.可以提现,手续费5%3.每月最后一天出账单(每月30天),写入文件(交易日,交易摘要,人民币金额,手续费)4...
    99+
    2023-01-31
    练习题
  • python3学习之print
    %[(name)][flags][width].[precision]typecode● (name)        可选,用于选择指定的key● flags            可选,可供选择的值有:    ●  +  右对齐    ●...
    99+
    2023-01-31
    print
  • python3学习之random
    import random print(random.random()) #随机取值 print(random.randint(1,4)) #随机从1到4去一个整数,包含1和4 print(random.choice([1,2,3,4...
    99+
    2023-01-31
    random
  • python3学习案例
    """ 请打印出 1024 * 768 = *** """ shu = 1024 * 768 print("1024 * 768 = %d" %shu) """ 请打印出以下变量的值: # -*- coding: utf-8 -*- n ...
    99+
    2023-01-31
    案例
  • python3 学习笔记
    本人很少写 python 代码, 一般都是用 go 的, 去年时用 python 写过一些收集系统信息的工具, 当时是边看手册边写的. 如今又要用 python 来写一个生成 xlsx 的工具, 就又需要查看手册了, 至于为什么不用 g...
    99+
    2023-01-31
    学习笔记
  • python3学习笔记
    好久不用python,努力捡起来ing python3语法 字符串 repr()把其他类型变量转换为字符串 ord()把单个字符转换为相应的ascii码 int()把其他进制的“字符串”转换为十进制 int(str,n...
    99+
    2023-01-31
    学习笔记
  • mysql学习13:第八章:锁
      1.   锁 InnoDB支持行锁,有时升级为表锁。 MyISAM只支持表锁。 表锁:开小小,加锁快,不会出现死锁;锁粒度大,锁冲突概率高,并发度低。 ...
    99+
    2024-04-02
  • day 88 Vue学习之八geetes
      本节目录 一 geetest前端web中使用 二 xxx 三 xxx 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 geetest前端web中使用     下载gt文件,官网...
    99+
    2023-01-31
    day geetes Vue
  • Python学习之旅(三十八)
    二、MySQL MySQL是Web世界中使用最广泛的数据库服务器。SQLite的特点是轻量级、可嵌入,但不能承受高并发访问,适合桌面和移动应用。而MySQL是为服务器端设计的数据库,能承受高并发访问,同时占用的内存也远远大于SQLite...
    99+
    2023-01-30
    之旅 Python 三十八
  • python3学习之正则
    ##正则表达式# . 任意一个# * 零及以上# ^  以某某开头# $  从某某结尾import re # # s = "sdfjkslfjlkaaa1923891a" r = re.findall('^s.*a$',s) print(r...
    99+
    2023-01-31
    正则
  • python3学习之反射
    1、反射  用于方法调用 利用字符串的形式去对象中操作成员(增/删/查),注意仅是在内存中操作 #hasattr(模块,'字符串'): 判断有没有 ,模块中有没有“字符串”为名字的成员;   返还True或者False #getattr(模...
    99+
    2023-01-31
    反射
  • Python3学习(十六):python
    如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列。range()语法:range(start,end,step=1):顾头不顾尾正序遍历:range(10):默认step=1,start=0,生成可迭代对象,包含[0,...
    99+
    2023-01-31
    十六 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作