这里介绍一下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()

友情链接

python框架---->APScheduler的使用的更多相关文章

  1. python 定时任务框架apscheduler

    文章目录 安装 基本概念介绍 调度器的工作流程 实例1 -间隔性任务 实例2 - cron 任务 配置调度器 方法一 方法二 方法三: 启动调度器 方法一:使用默认的作业存储器: 方法二:使用数据库作 ...

  2. Python框架、库以及软件资源汇总

    转自:http://developer.51cto.com/art/201507/483510.htm 很多来自世界各地的程序员不求回报的写代码为别人造轮子.贡献代码.开发框架.开放源代码使得分散在世 ...

  3. 【python】Python框架、库和软件资源大全

    很多来自世界各地的程序员不求回报的写代码为别人造轮子.贡献代码.开发框架.开放源代码使得分散在世界各地的程序员们都能够贡献他们的代码与创新. Python就是这样一门受到全世界各地开源社区支持的语言. ...

  4. Python框架、库和软件资源大全(整理篇)

    有少量修改,请访问原始链接.PythonWIn的exe安装包;http://www.lfd.uci.edu/~gohlke/pythonlibs/ 原文链接:codecloud.net/python- ...

  5. python 定时任务APScheduler 使用介绍

    python 定时任务APScheduler 使用介绍   介绍: APScheduler的全称是Advanced Python Scheduler.它是一个轻量级的 Python 定时任务调度框架. ...

  6. python框架之django

    python框架之django 本节内容 web框架 mvc和mtv模式 django流程和命令 django URL django views django temple django models ...

  7. android模拟器(genymotion)+appium+python 框架执行基本原理(目前公司自己写的)

    android模拟器(genymotion)+appium+python 框架执行的基本过程: 1.Push.initDate(openid)方法     //业务数据初始化 1.1   v5db.p ...

  8. 10个用于Web开发的最好 Python 框架

    Python 是一门动态.面向对象语言.其最初就是作为一门面向对象语言设计的,并且在后期又加入了一些更高级的特性.除了语言本身的设计目的之外,Python标准 库也是值得大家称赞的,Python甚至还 ...

  9. 第六篇:web之python框架之django

    python框架之django   python框架之django 本节内容 web框架 mvc和mtv模式 django流程和命令 django URL django views django te ...

随机推荐

  1. e739. 创建一个标签组件

    // The text is left-justified and vertically centered JLabel label = new JLabel("Text Label&quo ...

  2. 新版本IntelliJ IDEA 构建maven,并用Maven创建一个web项目

    之前都没试过用maven来管理过项目,但是手动找包导包确实不方便,于是今天用2016版的IDEA进行了maven的初尝试. 打开IDEA,创建新项目: 然后选择Maven,以及选择自己电脑的jdk: ...

  3. Linux及Windows系统配置JDK环境变量

    1.Linux系统配置方法 记住,要下载JDK-8u121-linux-x64.tar.gz,而不是JRE-8u121-linux-x64.tar.gz,JDK中含很多开发者实用工具,比如javac. ...

  4. php + ajax 避免重复提交

  5. js 按键

    原文:https://www.cnblogs.com/lunlunshiwo/p/8705856.html 上周临近周末休息的时候,一个同事跑过来了,对我说:“阿伦啊,有一个页面出问题了,火狐浏览器所 ...

  6. 国内各大安卓(Android)市场的上传方式、认领、通过审核有哪些不同,有什么值得注意的地方?

    6 个回答 赞同89反对,不会显示你的姓名 唐元鹏,扯淡爱好者 Jc droid.李明亮.知乎用户 等人赞同 作为一个android菜鸟开发者,代码水平不咋样,却练就了一身上传app的本领,大体说一下 ...

  7. level 6 - unit 2 - 情态动词May

    情态动词May 正式的请求/许可 意思为可以 例如我们在机场候机室听广播的时候,在播报航班前经常听到: may i have your attention ,please ! (请注意听) 在机场过安 ...

  8. Android 应用授权访问GooleDrive

    Refer:https://developers.google.com/drive/auth/android   Go to the Google Cloud Console. Select a pr ...

  9. C#爬网页时“远程服务器返回错误: (403) 已禁止”解决方法

    HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(uri); //这个一定要加上,在某些网站没有会发生"远程服务器返回错误: ...

  10. iOS: 解决某些第三方库因为ARC不能使用的问题

    1.在target下面的build phases下有一个compile source,下面有很多待编译文件.可以看到一个compile flag,可以针对某些文件进行arc设置.这样,某些框架不能使用 ...