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

代码如下:1 import schedule

2 import time

3 def job():

4 print("I'm working...")

5 schedule.every(10).minutes.do(job)

6 schedule.every().hour.do(job)

7 schedule.every().day.at("10:30").do(job)

8 schedule.every(5).to(10).days.do(job)

9 schedule.every().monday.do(job)

10 schedule.every().wednesday.at("13:15").do(job)

11 while True:

12 schedule.run_pending()

13 time.sleep(1)

上面的意思就是:

每隔十分钟执行一次任务

每隔一小时执行一次任务

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

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

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

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

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

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

很简单,如下所示:1 import schedule

2 import time

3 def job(name):

4 print("her name is : ", name)

5 name = xiaona

6 schedule.every(10).minutes.do(job, name)

7 schedule.every().hour.do(job, name)

8 schedule.every().day.at("10:30").do(job, name)

9 schedule.every(5).to(10).days.do(job, name)

10 schedule.every().monday.do(job, name)

11 schedule.every().wednesday.at("13:15").do(job, name)

12 while True:

13 schedule.run_pending()

14 time.sleep(1)

⚠⚠⚠时间是24小时制,要按标准来写,否则就会

最后改为09:00就ok了

疑问解答:

最近有人问我 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 分钟一次,那就会一直堆积线程。

About Me

QQ 群:1094019526    tg群:群里有

联系我请加 QQ 好友 (1362449059),注明添加缘由

文章内容来源于TOM的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

python 定时执行_python定时执行任务 轻量级相关推荐

  1. python采用解释方式执行_Python解释执行原理

    谈到了Python语句的两种执行方式,实际上,这两种运行方式在本质 上是相同的,它们都是由解释器来解释执行我们提供的Python语句. 这里所说的解释执行是相对于编译执行而言的.我们知道,使用诸如 C ...

  2. python自动抽奖_Python定时自动参与抽奖助手抽奖

    打开localhost:8002的web管理端页面,此时应该已经可以看到数据请求了. 然后在手机上访问小程序,抽奖助手. 如果手机流量很杂影响筛选的话,可以在管理页面手动设置filter: 后续的步骤 ...

  3. python安装选项_python设置执行选项参数

    1. sys 可以通过sys.argv得到参数列表,其中sys.argv[0]是文件名称,此后的列表值是每一个参数,这里的参数列表也支持常规的列表操作 for data in sys.argv: pr ...

  4. python主线程执行_python 并发执行之多线程

    正常情况下,我们在启动一个程序的时候.这个程序会先启动一个进程,启动之后这个进程会拉起来一个线程.这个线程再去处理事务.也就是说真正干活的是线程,进程这玩意只负责向系统要内存,要资源但是进程自己是不干 ...

  5. python没有运行_Python没有执行__init__

    疑惑 提出问题 前天同事问我一个问题,为什么这个脚本中的没有调用A 的__init__.脚本如下: 1 classA(object):2 def __init__(self, *args, **kwa ...

  6. python运行命令_Python中执行外部命令

    有很多需求需要在Python中执行shell命令.启动子进程,并捕获命令的输出和退出状态码,类似于Java中的Runtime类库. subprocess模块的使用: Python使用最广泛的是标准库的 ...

  7. python导入模块不执行_python 不执行

    [人间也值得] - Mryang带你快速入门第一个 Python 程序 版权声明:本文为博主原创文章,未经博主允许不得转载.https://blog.csdn.net/kese7952/article ...

  8. python逐行运行_python逐行执行

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我已经编写了一些代码来尝试执行以下操作 我之前在python代码中检索过的ope ...

  9. python绘制荷花_python解释器执行金额:¥%f 元 % 1.5000 的结果为( )

    [单选题]我国卫生细菌学标准规定:每升饮用水中大肠菌群数不得超过 ( ) [单选题]某企业为增值税一般纳税人,适用的增值税税率为16%.该企业委托其他单位(增值税一般纳税人)加工一批属于应税消费品的原 ...

最新文章

  1. Pytorch的安装教程
  2. js时断时续————动态参数传递
  3. 那些不敢生孩子的女人,都在怕什么?
  4. [Python设计模式] 第8章 学习雷锋好榜样——工厂方法模式
  5. rxjs里的Observable对象subscribe方法的执行原理
  6. Unity中Instantiate一个prefab时需要注意的问题
  7. 影像拼接(3种方法)
  8. linux spoon.sh闪退,解决Linux Kettle出现闪退问题
  9. studio 快捷键
  10. 设计一个巴特沃斯低通滤波器
  11. 做Gabor滤波器图片
  12. 开发微信小程序需要服务器吗?
  13. 李嘉诚:没有人愿意贫穷,但出路在哪(转自意林)
  14. 2 PC 有它,你就够了!
  15. nltk.stem.WordNetLemmatizer()时报错BadZipFile(“File is not a zip file“)的解决方法
  16. Hadoop-HDFS详解与HA,完全分布式集群搭建(细到令人发指的教程)
  17. 《大江大河2》里的创业故事
  18. excel想要把两列合并且用空格隔开
  19. PHPEMS +XAMPP 验证码显示不出来解决方法
  20. js滑动操作之-pageYOffset,scrollTop,offsetHeight,scrollHeight

热门文章

  1. 算法训练 P1101(java)
  2. l4d2服务器修改武器伤害,辐射4武器伤害及护甲修改图文教程_快吧单机游戏
  3. mysql b 树 锁_mysql索引B+树、MVCC、锁一文搞懂
  4. pytorch 实现 LSTM AutoEncoder 与案例
  5. Mac brew报错Error: The following directories are not writable by your user: /usr/local/share/man/man5
  6. joblib 读取模型后对单条数据做预测并解决Reshape your data either using array报错
  7. oracle游标多线程,多线程jdbc游标分页查询原理 oracle和mysql分页
  8. mysql的账户之间_MySQL用户管理
  9. 龙应台--为什么我要求你读书用功
  10. 基础算法之二分法查找