python框架---->APScheduler的使用
这里介绍一下python中关于定时器的一些使用,包括原生的sche包和第三方框架APScheduler的实现。流年未亡,夏日已尽。种花的人变成了看花的人,看花的人变成了葬花的人。
python中的sche模块
python中的sch有模块提供了定时器任务的功能,在3.3版本之后sche模块里面的scheduler类在多线程的环境中是安全的。以下是一个案例
- import sched, time
- sche = sched.scheduler(time.time, time.sleep)
- def print_time(a='default'):
- print('From print_time', time.time(), a)
- def print_some_time():
- print(time.time())
- # 10是delay单位是毫秒, 1代表优先级
- sche.enter(10, 1, print_time)
- sche.enter(5, 2, print_time, argument=('positional',))
- sche.enter(5, 1, print_time, kwargs={'a': 'keyword'})
- sche.run()
- print(time.time())
- print_some_time()
运行的打印结果如下:
- 1511139390.598038
- From print_time 1511139395.5982432 keyword
- From print_time 1511139395.5982432 positional
- From print_time 1511139400.5984359 default
- 1511139400.5984359
查看scheduler.enter的源码,可以看到它实际调用的是enterabs方法。
- def enter(self, delay, priority, action, argument=(), kwargs=_sentinel):
- """A variant that specifies the time as a relative time.
- This is actually the more commonly used interface.
- """
- time = self.timefunc() + delay
- return self.enterabs(time, priority, action, argument, kwargs)
而对于enterabs方法的argument和kwargs的含义,官方文档的解释如下:它们可以作为action的参数,也就是上述例子中的print_time方法的参数
- argument is a sequence holding the positional arguments for action. kwargs is a dictionary holding the keyword arguments for action.
APScheduler的使用
APScheduler的安装:pip install apscheduler。
一、第一个APScheduler的使用案例
每隔一秒打印出Hello World的字符。
- from apscheduler.schedulers.blocking import BlockingScheduler
- def my_job():
- print('Hello World')
- sched = BlockingScheduler()
- sched.add_job(my_job, 'interval', seconds=1)
- sched.start()
友情链接
- 关于APScheduler的官方文档:https://apscheduler.readthedocs.io/en/latest/userguide.html
python框架---->APScheduler的使用的更多相关文章
- python 定时任务框架apscheduler
文章目录 安装 基本概念介绍 调度器的工作流程 实例1 -间隔性任务 实例2 - cron 任务 配置调度器 方法一 方法二 方法三: 启动调度器 方法一:使用默认的作业存储器: 方法二:使用数据库作 ...
- Python框架、库以及软件资源汇总
转自:http://developer.51cto.com/art/201507/483510.htm 很多来自世界各地的程序员不求回报的写代码为别人造轮子.贡献代码.开发框架.开放源代码使得分散在世 ...
- 【python】Python框架、库和软件资源大全
很多来自世界各地的程序员不求回报的写代码为别人造轮子.贡献代码.开发框架.开放源代码使得分散在世界各地的程序员们都能够贡献他们的代码与创新. Python就是这样一门受到全世界各地开源社区支持的语言. ...
- Python框架、库和软件资源大全(整理篇)
有少量修改,请访问原始链接.PythonWIn的exe安装包;http://www.lfd.uci.edu/~gohlke/pythonlibs/ 原文链接:codecloud.net/python- ...
- python 定时任务APScheduler 使用介绍
python 定时任务APScheduler 使用介绍 介绍: APScheduler的全称是Advanced Python Scheduler.它是一个轻量级的 Python 定时任务调度框架. ...
- python框架之django
python框架之django 本节内容 web框架 mvc和mtv模式 django流程和命令 django URL django views django temple django models ...
- android模拟器(genymotion)+appium+python 框架执行基本原理(目前公司自己写的)
android模拟器(genymotion)+appium+python 框架执行的基本过程: 1.Push.initDate(openid)方法 //业务数据初始化 1.1 v5db.p ...
- 10个用于Web开发的最好 Python 框架
Python 是一门动态.面向对象语言.其最初就是作为一门面向对象语言设计的,并且在后期又加入了一些更高级的特性.除了语言本身的设计目的之外,Python标准 库也是值得大家称赞的,Python甚至还 ...
- 第六篇:web之python框架之django
python框架之django python框架之django 本节内容 web框架 mvc和mtv模式 django流程和命令 django URL django views django te ...
随机推荐
- Asp.net WebApi下载文件
1,图片 var result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(stream ...
- Oracle数据库order by排序查询分页比不分页还慢问题解决办法
简单说下问题,有一个JDBC的查询SQL,分页查询语句中有一个排序order by create_time,理论上来说JDBC查询已经是比较底层的技术了,没有像Hibernate.MyBatis那样又 ...
- Windows命令处理进程
1. 查看进程命令 tasklist 2.以翻页模式查看进程 tasklist | more 3.搜索关键字查找进程 tasklist | findstr "cmd" ...
- 因修改/etc/sudoers权限导致sudo和su不能使用的解决方法
因为修改了/etc/sudoers以及相关权限,导致sudo无法使用,恰好Ubuntu的root密码没有设置,每次执行 su - 时.输入密码,提示:认证错误 . 解决方法: 1.重启ubuntu,启 ...
- C# 判断一个字符串是否为url
/// <summary> /// 判断一个字符串是否为url /// </summary> /// <param name="str">< ...
- 浪漫程序员 HTML5爱心表白动画
我们程序员在追求爱情方面也是非常浪漫的,下面是一位同学利用自己所学的HTML5知识自制的HTML5爱心表白动画,画面非常温馨甜蜜,这样的创意很容易打动女孩,如果你是单身的程序员,也赶紧来制作自己的爱心 ...
- TensorFlow-tensorboard可视化
运行了很多次出现错误,错误原因在于运行tensorboard时,需要退出python编辑
- 使用 ML Pipeline 构建机器学习工作流
http://www.ibm.com/developerworks/cn/opensource/os-cn-spark-practice5/
- asp adodb.stream读取文件和写文件
读取文件操作: '------------------------------------------------- '函数名称:ReadTextFile '作用:利用AdoDb.Stream对象来读 ...
- Android学习之——实现圆角Button
在drawable文件夹下新建btn_shape.xml文件: <?xml version="1.0" encoding="utf-8"?> < ...