# 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. 手把手教你AndroidStudio多渠道打包

    最近不断有朋友向我咨询AndroidStudio多渠道的打包方法,今天整理一下之前积累的打包套路,写一篇文章,手把手的教给大家.        说到多渠道,这里不得不提一下友盟统计,友盟统计是大家日常 ...

  2. apache 配置防盗

    防盗链目的:防止其他网站盗用自己的网站而增加额外的流量损失 SetEnvIfNoCase Referer "^http://.*\.yourdomin\.com" local_re ...

  3. Hadoop之Hive详解

    1.什么是Hive hive是基于hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表 并提供类sql查询功能 2.为什么要用Hive 1.直接使用hadoop所面临的问题 人员学 ...

  4. zabbix_sender高效模式

    1.zabbix_sender介绍 zabbix获取key值有超时时间,如果自定义的key脚本一般需要执行很长时间,这根本没法去做监控,获取数据有超时时间,如果一些数据需要执行比较长的时间才能获取的话 ...

  5. 2017.3.31 spring mvc教程(七)多视图控制器

    学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...

  6. 阻止右键菜单(阻止默认事件)&&跟随鼠标移动(大图展示)&&自定义右键菜单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. C2:抽象工厂 Abstract Factory

    提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. 应用场景: 一系列相互依赖的对象有不同的具体实现.提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合 UM ...

  8. Asp.net Mvc使用PagedList分页

    git:https://github.com/troygoode/PagedList 1. Nuget 安装package watermark/2/text/aHR0cDovL2Jsb2cuY3Nkb ...

  9. My sql 实用教程

    http://wenku.baidu.com/link?url=uwWWeGTZU61MQSSArf2pYRd4jPd7k7gNsx75KxEUKO1MlMLAAFiIF-fus3CY4RLyyzbZ ...

  10. asp.net core mvc视频A:笔记1.基本概念介绍

    此笔记来自视频教程 MVC本身与三层架构没有联系 使用VS2017新建一个默认的asp.net core mvc网站,认识结构及文件用途.