python执行定时任务,首先如果是在linux系统下,完全没必要使用python的定时任务模块了,因为linux有自带的强大的crontab模块,那么接下来就讲一讲windows下python的定时任务怎么来执行。其实windows系统也有自己的定时任务,详情可见作者的另一篇博客。

一、暴力的定时任务:

简单暴力,直接运用time模块的sleep函数,这个大家比较熟悉,这里不做详细的说明。

from datetime import datetime
import time'''
每个 10 秒打印当前时间。
'''
def timedTask():while True:print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))time.sleep(10)if __name__ == '__main__':timedTask()

二、运用python线程的Timer模块:

def timedTask():'''第一个参数: 延迟多长时间执行任务(单位: 秒)第二个参数: 要执行的任务, 即函数第三个参数: 调用函数的参数(tuple)'''Timer(10, task, ()).start()# 定时任务
def task():print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))if __name__ == '__main__':timedTask()

这个模块虽然可以用,但是有一个弊端就是只会执行一次,不会循环往复的无限执行下去

三、第三种方式是使用标准库中sched模块。sched 是事件调度器,它通过 scheduler 类来调度事件,从而达到定时执行任务的效果。

sched库使用起来也是非常简单。
1)首先构造一个sched.scheduler
它接受两个参数:timefuncdelayfunc。timefunc 应该返回一个数字,代表当前时间,delayfunc 函数接受一个参数,用于暂停运行的时间单元。

一般使用默认参数就行,即传入这两个参数 time.timetime.sleep.当然,你也可以自己实现时间暂停的函数。

2)添加调度任务
scheduler 提供了两个添加调度任务的函数:

  • enter(delay, priority, action, argument=(), kwargs={})

该函数可以延迟一定时间执行任务。delay 表示延迟多长时间执行任务,单位是秒。priority为优先级,越小优先级越大。两个任务指定相同的延迟时间,优先级大的任务会向被执行。action 即需要执行的函数,argumentkwargs 分别是函数的位置和关键字参数。

  • scheduler.enterabs(time, priority, action, argument=(), kwargs={})

添加一项任务,但这个任务会在 time 这时刻执行。因此,time 是绝对时间.其他参数用法与 enter() 中的参数用法是一致。

3)把任务运行起来
调用 scheduler.run()函数就完事了。

下面是 sche 使用的简单示例:

import schedule
import timedef job():print("I'm working...")schedule.every(10).seconds.do(job) # 每10秒执行一次
schedule.every(10).minutes.do(job) # 每10分钟执行一次
schedule.every().hour.do(job) # 每小时执行一次
schedule.every().day.at("10:30").do(job) # 每天十点半执行
schedule.every(5).to(10).minutes.do(job) # 每5-10分钟随机执行一次
schedule.every().monday.do(job) # 每周一执行
schedule.every().wednesday.at("13:15").do(job) # 每周三13点15执行
schedule.every().minute.at(":17").do(job) # 每个小时的17分执行一次while True:schedule.run_pending() # 运行所有可运行的任务time.sleep(1)

可以根据自己的情况合适的选择以上的函数执行定时任务

python执行定时任务相关推荐

  1. Python实现定时任务,定时采集数据,定时执行脚本程序都可以

    写后端的同学们可能都知道,工作中可能需要周期性执行一些任务,俗称定时任务.Linux环境下,可以借助于系统自带的crontab完成定时任务.但是很多时候,开发的同学们可能并没有权限去操作crontab ...

  2. Python爬虫学习(七)执行定时任务爬取12306余票信息发送邮件通知

    分析 我们输入的上海,北京都变成了对应的编号,比如,上海(SHH).北京(BJP),所以当我们程序进行输入的时候要进行一下处理,12306的一个地方存储着这些城市名与编码对应的文档: GET请求: h ...

  3. python做定时任务的方式及优缺点_python BlockingScheduler定时任务及其他方式的实现...

    本文介绍了python BlockingScheduler定时任务及其他方式的实现,具体如下: #BlockingScheduler定时任务 from apscheduler.schedulers.b ...

  4. (shell脚本编程)linux如何利用脚本执行多条命令以及linux如何执行定时任务

    文章目录 shell脚本编程 条件语句 脚本执行多条命令 执行定时任务 本文着重于提高我们的生产力,所以将这几个作为了一个专题. shell脚本编程 脚本中不同语句用分号隔开,和c语言一样. for, ...

  5. jenkins配置python脚本参数_jenkins配置python脚本定时任务过程图解

    这篇文章主要介绍了jekins配置python脚本定时任务过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 2.下载安装包后直接运行,进行选择 ...

  6. python脚本自动运行失败_解决Python中定时任务线程无法自动退出的问题

    python的线程有一个类叫Timer可以,用来创建定时任务,但是它的问题是只能运行一次,如果要重复执行,则只能在任务中再调用一次timer,但这样就存在新的问题了,就是在主进程退出后,不能正常退出子 ...

  7. SpringMVC框架使用注解执行定时任务

    2019独角兽企业重金招聘Python工程师标准>>> 在项目开发过程中,免不了会有一些定时任务.今天就给大家一个SpringMVC框架中利用注解的方式执行定时任务的示例代码 使用到 ...

  8. python做定时任务的方式及优缺点_Python3-定时任务四种实现方式

    最近做一个小程序开发任务,主要负责后台部分开发:根据项目需求,需要实现三个定时任务: 1>定时更新微信token,需要2小时更新一次: 2>商品定时上线: 3>定时检测后台服务是否存 ...

  9. python threading timer 退出_解决Python中定时任务线程无法自动退出的问题

    python的线程有一个类叫Timer可以,用来创建定时任务,但是它的问题是只能运行一次,如果要重复执行,则只能在任务中再调用一次timer,但这样就存在新的问题了,就是在主进程退出后,不能正常退出子 ...

最新文章

  1. POJ2762 Going from u to v or from v to u? 强连通+缩点
  2. Codeforces #440.Div.2
  3. 目标检测数据集PASCAL VOC简介
  4. TOMCAT启动到一半停止如何解决
  5. fastjson解析多层数据_怎么解析三层List json数据
  6. jumpserver(0.3.2版本)开源跳板机系统部署
  7. 构造函数能默认初始化其静态成员么?
  8. Vijos P1816 统计数字【序列处理】
  9. 在ArcGIS Desktop中选择地物要素的方法(二)
  10. Python100经典练习题,附答案
  11. python计算器界面设计_Python 计算器界面设计
  12. ASP.NET Core 多线程 异步编程
  13. 内容下沉新时代:在一二线做品质,去三四线接地气
  14. JavaScript 之自定义播放器
  15. MDCC为移动开发者服务:一看、一聊、一聚
  16. 英特尔:准备好放弃芯片制造了吗?
  17. [原创]python计算中文文本相似度神器
  18. jacob调用中控考勤机事件监听实现
  19. ElasticSearch 2 (25) - 语言处理系列之同义词
  20. 百度员工离职总结:资质平庸的人该怎么办?震惊了无数人!

热门文章

  1. 为年会写的配乐诗朗诵稿
  2. 推荐三个 VSCode 摸鱼插件
  3. 读书笔记:《漫画生理学》
  4. 用python整个活(4)——哥德巴赫猜想
  5. VUE+WebPack游戏设计:欲望都市,构建类RPG游戏的开发
  6. SQL Server 2008 (2008 R2) 清理日志方法
  7. 二进制安装k8s集群V1.23.0
  8. tkinter使用canvas实现渐变色
  9. 抽奖随机滚动_仅需2分钟,使用excel制作一个抽奖小工具,再也不用为抽奖发愁了...
  10. 宝塔 Plugin ‘InnoDB‘ registration as a STORAGE ENGINE failed 解决办法