django定时任务python调度框架APScheduler使用详解
# 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使用详解的更多相关文章
- python调度框架APScheduler使用详解
# coding=utf-8 """ Demonstrates how to use the background scheduler to schedule a job ...
- 定时任务框架APScheduler学习详解
APScheduler简介 在平常的工作中几乎有一半的功能模块都需要定时任务来推动,例如项目中有一个定时统计程序,定时爬出网站的URL程序,定时检测钓鱼网站的程序等等,都涉及到了关于定时任务的问题,第 ...
- python爬虫框架scrapy实例详解
生成项目scrapy提供一个工具来生成项目,生成的项目中预置了一些文件,用户需要在这些文件中添加自己的代码.打开命令行,执行:scrapy st... 生成项目 scrapy提供一个工具来生成项目,生 ...
- Django框架 之 querySet详解
Django框架 之 querySet详解 浏览目录 可切片 可迭代 惰性查询 缓存机制 exists()与iterator()方法 QuerySet 可切片 使用Python 的切片语法来限制查询集 ...
- Python API 操作Hadoop hdfs详解
1:安装 由于是windows环境(linux其实也一样),只要有pip或者setup_install安装起来都是很方便的 >pip install hdfs 2:Client——创建集群连接 ...
- java的集合框架最全详解
java的集合框架最全详解(图) 前言:数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作 ...
- Python安装、配置图文详解(转载)
Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境(I ...
- 【和我一起学python吧】Python安装、配置图文详解
Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境( ...
- Python中的高级数据结构详解
这篇文章主要介绍了Python中的高级数据结构详解,本文讲解了Collection.Array.Heapq.Bisect.Weakref.Copy以及Pprint这些数据结构的用法,需要的朋友可以参考 ...
随机推荐
- object references an unsaved transient instance - save the transient instance before flushing异常问题处理
一.异常:org.hibernate.TransientObjectException: object references an unsaved transient instance - save ...
- 转 : SQL Server数据库优化经验总结
优化数据库的注意事项: 1.关键字段建立索引. 2.使用存储过程,它使SQL变得更加灵活和高效. 3.备份数据库和清除垃圾数据. 4.SQL语句语法的优化.(可以用Sybase的SQL Expert, ...
- linux下rar包的解压方法
linux下rar包的解压方法 学习了:https://blog.csdn.net/yonggeit/article/details/72190246?utm_source=itdadao&u ...
- Elasticsearch教程(二),IK分词器安装
elasticsearch-analysis-ik 是一款中文的分词插件,支持自定义词库,也有默认的词库. 开始安装. 1.下载 下载地址为:https://github.com/medcl/ela ...
- 简易选项卡&&简易JS年历
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Linux下的各文件夹的作用(转)
linux下的文件结构,看看每个文件夹都是干吗用的/bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基 ...
- LoadRunner读取关联数组的个数和内容
web_reg_save_param_ex( "ParamName=response_header1", "LB=Set-Cookie: ", "RB ...
- Nginx:subrequest的使用方式
参考资料<深入理解Nginx> subrequest是由HTTP框架提供的一种分解复杂请求的设计模式. 它可以把原始请求分解为许多子请求,使得诸多请求协同完成一个用户请求,并且每个请求只关 ...
- TCP/IP协议分析(推荐)
一;前言 学习过TCP/IP协议的人多有一种感觉,这东西太抽象了,没有什么数据实例,看完不久就忘了.本文将介绍一种直观的学习方法,利用协议分析工具学习TCP/IP,在学习的过程中能直观的看到数据的具体 ...
- lua连接数据库之luasql ------ luasql连接mysql数据库 及 luasql源码编译
lua连接数据库不只luasql这个库,但目前更新最快的的貌似是这个luasql,他是开源的,支持的数据库功能如下: Connect to ODBC, ADO, Oracle, MySQL, SQLi ...