python执行定时任务
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
类
它接受两个参数:timefunc
和 delayfunc
。timefunc 应该返回一个数字,代表当前时间,delayfunc 函数接受一个参数,用于暂停运行的时间单元。
一般使用默认参数就行,即传入这两个参数 time.time
和 time.sleep
.当然,你也可以自己实现时间暂停的函数。
2)添加调度任务
scheduler
提供了两个添加调度任务的函数:
enter(delay, priority, action, argument=(), kwargs={})
该函数可以延迟一定时间执行任务。delay
表示延迟多长时间执行任务,单位是秒。priority
为优先级,越小优先级越大。两个任务指定相同的延迟时间,优先级大的任务会向被执行。action
即需要执行的函数,argument
和 kwargs
分别是函数的位置和关键字参数。
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执行定时任务相关推荐
- Python实现定时任务,定时采集数据,定时执行脚本程序都可以
写后端的同学们可能都知道,工作中可能需要周期性执行一些任务,俗称定时任务.Linux环境下,可以借助于系统自带的crontab完成定时任务.但是很多时候,开发的同学们可能并没有权限去操作crontab ...
- Python爬虫学习(七)执行定时任务爬取12306余票信息发送邮件通知
分析 我们输入的上海,北京都变成了对应的编号,比如,上海(SHH).北京(BJP),所以当我们程序进行输入的时候要进行一下处理,12306的一个地方存储着这些城市名与编码对应的文档: GET请求: h ...
- python做定时任务的方式及优缺点_python BlockingScheduler定时任务及其他方式的实现...
本文介绍了python BlockingScheduler定时任务及其他方式的实现,具体如下: #BlockingScheduler定时任务 from apscheduler.schedulers.b ...
- (shell脚本编程)linux如何利用脚本执行多条命令以及linux如何执行定时任务
文章目录 shell脚本编程 条件语句 脚本执行多条命令 执行定时任务 本文着重于提高我们的生产力,所以将这几个作为了一个专题. shell脚本编程 脚本中不同语句用分号隔开,和c语言一样. for, ...
- jenkins配置python脚本参数_jenkins配置python脚本定时任务过程图解
这篇文章主要介绍了jekins配置python脚本定时任务过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 2.下载安装包后直接运行,进行选择 ...
- python脚本自动运行失败_解决Python中定时任务线程无法自动退出的问题
python的线程有一个类叫Timer可以,用来创建定时任务,但是它的问题是只能运行一次,如果要重复执行,则只能在任务中再调用一次timer,但这样就存在新的问题了,就是在主进程退出后,不能正常退出子 ...
- SpringMVC框架使用注解执行定时任务
2019独角兽企业重金招聘Python工程师标准>>> 在项目开发过程中,免不了会有一些定时任务.今天就给大家一个SpringMVC框架中利用注解的方式执行定时任务的示例代码 使用到 ...
- python做定时任务的方式及优缺点_Python3-定时任务四种实现方式
最近做一个小程序开发任务,主要负责后台部分开发:根据项目需求,需要实现三个定时任务: 1>定时更新微信token,需要2小时更新一次: 2>商品定时上线: 3>定时检测后台服务是否存 ...
- python threading timer 退出_解决Python中定时任务线程无法自动退出的问题
python的线程有一个类叫Timer可以,用来创建定时任务,但是它的问题是只能运行一次,如果要重复执行,则只能在任务中再调用一次timer,但这样就存在新的问题了,就是在主进程退出后,不能正常退出子 ...
最新文章
- POJ2762 Going from u to v or from v to u? 强连通+缩点
- Codeforces #440.Div.2
- 目标检测数据集PASCAL VOC简介
- TOMCAT启动到一半停止如何解决
- fastjson解析多层数据_怎么解析三层List json数据
- jumpserver(0.3.2版本)开源跳板机系统部署
- 构造函数能默认初始化其静态成员么?
- Vijos P1816 统计数字【序列处理】
- 在ArcGIS Desktop中选择地物要素的方法(二)
- Python100经典练习题,附答案
- python计算器界面设计_Python 计算器界面设计
- ASP.NET Core 多线程 异步编程
- 内容下沉新时代:在一二线做品质,去三四线接地气
- JavaScript 之自定义播放器
- MDCC为移动开发者服务:一看、一聊、一聚
- 英特尔:准备好放弃芯片制造了吗?
- [原创]python计算中文文本相似度神器
- jacob调用中控考勤机事件监听实现
- ElasticSearch 2 (25) - 语言处理系列之同义词
- 百度员工离职总结:资质平庸的人该怎么办?震惊了无数人!
热门文章
- 为年会写的配乐诗朗诵稿
- 推荐三个 VSCode 摸鱼插件
- 读书笔记:《漫画生理学》
- 用python整个活(4)——哥德巴赫猜想
- VUE+WebPack游戏设计:欲望都市,构建类RPG游戏的开发
- SQL Server 2008 (2008 R2) 清理日志方法
- 二进制安装k8s集群V1.23.0
- tkinter使用canvas实现渐变色
- 抽奖随机滚动_仅需2分钟,使用excel制作一个抽奖小工具,再也不用为抽奖发愁了...
- 宝塔 Plugin ‘InnoDB‘ registration as a STORAGE ENGINE failed 解决办法