# coding=utf-8
2 """
3 Demonstrates how to use the background scheduler to schedule a job that executes on 3 second
4 intervals.
5 """
6
7 from datetime import datetime
8 import time
9 import os
10
11 from apscheduler.schedulers.background import BackgroundScheduler
12
13
14 def tick():
15 print('Tick! The time is: %s' % datetime.now())
16
17
18 if __name__ == '__main__':
19 scheduler = BackgroundScheduler()
20 scheduler.add_job(tick, 'interval', seconds=3)  #间隔3秒钟执行一次
21 scheduler.start() #这里的调度任务是独立的一个线程
22 print('Press Ctrl+{0} to exit'.format('Break' if os.name == 'nt' else 'C'))
23
24 try:
25 # This is here to simulate application activity (which keeps the main thread alive).
26 while True:
27 time.sleep(2) #其他任务是独立的线程执行
28 print('sleep!')
29 except (KeyboardInterrupt, SystemExit):
30 # Not strictly necessary if daemonic mode is enabled but should be done if possible
31 scheduler.shutdown()
32 print('Exit The Job!')

非阻塞调度,在指定的时间执行一次

 1 # coding=utf-8
2 """
3 Demonstrates how to use the background scheduler to schedule a job that executes on 3 second
4 intervals.
5 """
6
7 from datetime import datetime
8 import time
9 import os
10
11 from apscheduler.schedulers.background import BackgroundScheduler
12
13
14 def tick():
15 print('Tick! The time is: %s' % datetime.now())
16
17
18 if __name__ == '__main__':
19 scheduler = BackgroundScheduler()
20 #scheduler.add_job(tick, 'interval', seconds=3)
21 scheduler.add_job(tick, 'date', run_date='2016-02-14 15:01:05')  #在指定的时间,只执行一次
22 scheduler.start() #这里的调度任务是独立的一个线程
23 print('Press Ctrl+{0} to exit'.format('Break' if os.name == 'nt' else 'C'))
24
25 try:
26 # This is here to simulate application activity (which keeps the main thread alive).
27 while True:
28 time.sleep(2) #其他任务是独立的线程执行
29 print('sleep!')
30 except (KeyboardInterrupt, SystemExit):
31 # Not strictly necessary if daemonic mode is enabled but should be done if possible
32 scheduler.shutdown()
33 print('Exit The Job!')

非阻塞的方式,采用cron的方式执行

 1 # coding=utf-8
2 """
3 Demonstrates how to use the background scheduler to schedule a job that executes on 3 second
4 intervals.
5 """
6
7 from datetime import datetime
8 import time
9 import os
10
11 from apscheduler.schedulers.background import BackgroundScheduler
12
13
14 def tick():
15 print('Tick! The time is: %s' % datetime.now())
16
17
18 if __name__ == '__main__':
19 scheduler = BackgroundScheduler()
20 #scheduler.add_job(tick, 'interval', seconds=3)
21 #scheduler.add_job(tick, 'date', run_date='2016-02-14 15:01:05')
22 scheduler.add_job(tick, 'cron', day_of_week='6', second='*/5')
23 '''
24 year (int|str) – 4-digit year
25 month (int|str) – month (1-12)
26 day (int|str) – day of the (1-31)
27 week (int|str) – ISO week (1-53)
28 day_of_week (int|str) – number or name of weekday (0-6 or mon,tue,wed,thu,fri,sat,sun)
29 hour (int|str) – hour (0-23)
30 minute (int|str) – minute (0-59)
31 second (int|str) – second (0-59)
32
33 start_date (datetime|str) – earliest possible date/time to trigger on (inclusive)
34 end_date (datetime|str) – latest possible date/time to trigger on (inclusive)
35 timezone (datetime.tzinfo|str) – time zone to use for the date/time calculations (defaults to scheduler timezone)
36
37 * any Fire on every value
38 */a any Fire every a values, starting from the minimum
39 a-b any Fire on any value within the a-b range (a must be smaller than b)
40 a-b/c any Fire every c values within the a-b range
41 xth y day Fire on the x -th occurrence of weekday y within the month
42 last x day Fire on the last occurrence of weekday x within the month
43 last day Fire on the last day within the month
44 x,y,z any Fire on any matching expression; can combine any number of any of the above expressions
45 '''
46 scheduler.start() #这里的调度任务是独立的一个线程
47 print('Press Ctrl+{0} to exit'.format('Break' if os.name == 'nt' else 'C'))
48
49 try:
50 # This is here to simulate application activity (which keeps the main thread alive).
51 while True:
52 time.sleep(2) #其他任务是独立的线程执行
53 print('sleep!')
54 except (KeyboardInterrupt, SystemExit):
55 # Not strictly necessary if daemonic mode is enabled but should be done if possible
56 scheduler.shutdown()
57 print('Exit The Job!')

阻塞的方式,间隔3秒执行一次

 1 # coding=utf-8
2 """
3 Demonstrates how to use the background scheduler to schedule a job that executes on 3 second
4 intervals.
5 """
6
7 from datetime import datetime
8 import os
9
10 from apscheduler.schedulers.blocking import BlockingScheduler
11
12
13 def tick():
14 print('Tick! The time is: %s' % datetime.now())
15
16
17 if __name__ == '__main__':
18 scheduler = BlockingScheduler()
19 scheduler.add_job(tick, 'interval', seconds=3)
20
21 print('Press Ctrl+{0} to exit'.format('Break' if os.name == 'nt' else 'C'))
22
23 try:
24 scheduler.start() #采用的是阻塞的方式,只有一个线程专职做调度的任务
25 except (KeyboardInterrupt, SystemExit):
26 # Not strictly necessary if daemonic mode is enabled but should be done if possible
27 scheduler.shutdown()
28 print('Exit The Job!')

采用阻塞的方法,只执行一次

 1 # coding=utf-8
2 """
3 Demonstrates how to use the background scheduler to schedule a job that executes on 3 second
4 intervals.
5 """
6
7 from datetime import datetime
8 import os
9
10 from apscheduler.schedulers.blocking import BlockingScheduler
11
12
13 def tick():
14 print('Tick! The time is: %s' % datetime.now())
15
16
17 if __name__ == '__main__':
18 scheduler = BlockingScheduler()
19 scheduler.add_job(tick, 'date', run_date='2016-02-14 15:23:05')
20
21 print('Press Ctrl+{0} to exit'.format('Break' if os.name == 'nt' else 'C'))
22
23 try:
24 scheduler.start() #采用的是阻塞的方式,只有一个线程专职做调度的任务
25 except (KeyboardInterrupt, SystemExit):
26 # Not strictly necessary if daemonic mode is enabled but should be done if possible
27 scheduler.shutdown()
28 print('Exit The Job!')

采用阻塞的方式,使用cron的调度方法

 1 # coding=utf-8
2 """
3 Demonstrates how to use the background scheduler to schedule a job that executes on 3 second
4 intervals.
5 """
6
7 from datetime import datetime
8 import os
9
10 from apscheduler.schedulers.blocking import BlockingScheduler
11
12
13 def tick():
14 print('Tick! The time is: %s' % datetime.now())
15
16
17 if __name__ == '__main__':
18 scheduler = BlockingScheduler()
19 scheduler.add_job(tick, 'cron', day_of_week='6', second='*/5')
20 '''
21 year (int|str) – 4-digit year
22 month (int|str) – month (1-12)
23 day (int|str) – day of the (1-31)
24 week (int|str) – ISO week (1-53)
25 day_of_week (int|str) – number or name of weekday (0-6 or mon,tue,wed,thu,fri,sat,sun)
26 hour (int|str) – hour (0-23)
27 minute (int|str) – minute (0-59)
28 second (int|str) – second (0-59)
29
30 start_date (datetime|str) – earliest possible date/time to trigger on (inclusive)
31 end_date (datetime|str) – latest possible date/time to trigger on (inclusive)
32 timezone (datetime.tzinfo|str) – time zone to use for the date/time calculations (defaults to scheduler timezone)
33
34 * any Fire on every value
35 */a any Fire every a values, starting from the minimum
36 a-b any Fire on any value within the a-b range (a must be smaller than b)
37 a-b/c any Fire every c values within the a-b range
38 xth y day Fire on the x -th occurrence of weekday y within the month
39 last x day Fire on the last occurrence of weekday x within the month
40 last day Fire on the last day within the month
41 x,y,z any Fire on any matching expression; can combine any number of any of the above expressions
42 '''
43
44 print('Press Ctrl+{0} to exit'.format('Break' if os.name == 'nt' else 'C'))
45
46 try:
47 scheduler.start() #采用的是阻塞的方式,只有一个线程专职做调度的任务
48 except (KeyboardInterrupt, SystemExit):
49 # Not strictly necessary if daemonic mode is enabled but should be done if possible
50 scheduler.shutdown()
51 print('Exit The Job!')

django定时任务python调度框架APScheduler使用详解的更多相关文章

  1. python调度框架APScheduler使用详解

    # coding=utf-8 """ Demonstrates how to use the background scheduler to schedule a job ...

  2. 定时任务框架APScheduler学习详解

    APScheduler简介 在平常的工作中几乎有一半的功能模块都需要定时任务来推动,例如项目中有一个定时统计程序,定时爬出网站的URL程序,定时检测钓鱼网站的程序等等,都涉及到了关于定时任务的问题,第 ...

  3. python爬虫框架scrapy实例详解

    生成项目scrapy提供一个工具来生成项目,生成的项目中预置了一些文件,用户需要在这些文件中添加自己的代码.打开命令行,执行:scrapy st... 生成项目 scrapy提供一个工具来生成项目,生 ...

  4. Django框架 之 querySet详解

    Django框架 之 querySet详解 浏览目录 可切片 可迭代 惰性查询 缓存机制 exists()与iterator()方法 QuerySet 可切片 使用Python 的切片语法来限制查询集 ...

  5. Python API 操作Hadoop hdfs详解

    1:安装 由于是windows环境(linux其实也一样),只要有pip或者setup_install安装起来都是很方便的 >pip install hdfs 2:Client——创建集群连接 ...

  6. java的集合框架最全详解

    java的集合框架最全详解(图) 前言:数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作 ...

  7. Python安装、配置图文详解(转载)

    Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境(I ...

  8. 【和我一起学python吧】Python安装、配置图文详解

     Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境( ...

  9. Python中的高级数据结构详解

    这篇文章主要介绍了Python中的高级数据结构详解,本文讲解了Collection.Array.Heapq.Bisect.Weakref.Copy以及Pprint这些数据结构的用法,需要的朋友可以参考 ...

随机推荐

  1. WIN10 64位 JDK的安装

    因为电脑系统换掉,重装系统,重新配置了一下环境,安装JDK,现记录一下过程,以便下次查询使用. 官网下载JDK,地址:http://www.oracle.com/technetwork/java/ja ...

  2. pc_lint的用法转

    PC-Lint是一款C/C++软件代码静态分析工具,不仅可以检查一般的语法错误,还可以检查潜在的错误,比如数组访问越界.内存泄漏.使用未初始化变量.使用空指针等.在单元测试前使用PC-Lint来检查代 ...

  3. CentOS7下挂载硬盘笔记

    CentOS7下挂载硬盘笔记 准备工作 机器:DELL R730 系统:CentOS 7.4.1708 (Core) x86_64 新增硬盘:三星960PRO 关闭服务器加上新硬盘,然后重启 查看硬盘 ...

  4. 使用HttpClient测试SpringMVC的接口

    转载:http://blog.csdn.net/tmaskboy/article/details/52355591 最近在写SSM创建的Web项目,写到一个对外接口时需要做测试,接受json格式的数据 ...

  5. Python<1>List

    list里的元素以逗号隔开,以[]包围,当中元素的类型随意 官方一点的说:list列表是一个随意类型的对象的位置相关的有序集合. 它没有固定的大小(1).通过对偏移量 (2)进行赋值以及其它各种列表的 ...

  6. python 道生一,一生二,二生三,三生万物

    千万不要被所谓“元类是99%的python程序员不会用到的特性”这类的说辞吓住.因为每个中国人,都是天生的元类使用者 学懂元类,你只需要知道两句话: 道生一,一生二,二生三,三生万物 我是谁?我从哪来 ...

  7. Linux下的非阻塞IO(一)

    非阻塞IO是相对于传统的阻塞IO而言的. 我们首先需要搞清楚,什么是阻塞IO.APUE指出,系统调用分为两类,低速系统调用和其他,其中低速系统调用是可能会使进程永远阻塞的一类系统调用.但是与磁盘IO有 ...

  8. css3——position定位详解

    最近热衷于前端的开发,因为突然发现虽然对于网站.应用来说,功能处于绝对重要的地位,但是用户体验对于用户来讲同样是那么的重要,可以说是第一印象.最近在开发当中发现以前对于css中的position的理解 ...

  9. mysql热备及查询mysql操作日志

    mysql热备 1 查看mysql版本,保证主库低于等于从库 2 主库配置:   A 需要打开支持日志功能:log-bin=mysql-bin   B 提供server-id:server-id=1  ...

  10. Android Shader 颜色、图像渲染 paint.setXfermode

    Shader Shader是一个基类,表示在绘制期间颜色的水平跨度 它的子类被嵌入在Paint中使用,调用paint.setShader(shader). 除Bitmap外的其他对象,使用该Paint ...