APScheduler全程为Advanced Python Scheduler,是一款轻量级的Python任务调度框架。它允许你像Cron那样安排定期执行的任务,并且支持Python函数或任意可调用的对象。

安装APScheduler

可以使用pip工具安装:

pip install apscheduler

或在Pypi上下载最新的源码包(https://pypi.python.org/pypi/APScheduler/)进行安装:

python setup.py install

简单的应用(翻译自官方文档)

以默认配置启动Scheduler

from apscheduler.scheduler import Scheduler

sched = Scheduler()
sched.start()

from apscheduler.scheduler import Scheduler

sched = Scheduler()

sched.start()

1.基于固定时间的调度:

from datetime import date
from apscheduler.scheduler import Scheduler # 启动Scheduler
sched = Scheduler()
sched.start() # 定义被自动调度的函数
def my_job(text):
print text # 定义任务的执行时间(2013年5月17日)
exec_date = date(2013, 5, 17) # 加入到任务队列,并将其赋值给变量以方便取消等操作
job = sched.add_date_job(my_job, exec_date, ['text'])

2.周期任务:

def job_function():
print "Hello World" # job_function将会每两小时执行一次
sched.add_interval_job(job_function, hours=2) # 与上面的任务相同,不过规定在2013-5-17 18:30之后才开始运行
sched.add_interval_job(job_function, hours=2, start_date='2013-5-17 18:30')

装饰器版本:

@sched.interval_schedule(hours=2)
def job_function():
print "Hello World"

3.Cron风格的任务的调度:

def job_function():
print "Hello World" # 安排job_function函数将会在六月、七月、十一月和十二月的第三个星期五中的0点、1点、2点和3点分别执行
sched.add_cron_job(job_function, month='6-8,11-12', day='3rd fri', hour='0-3')

装饰器版本:

@sched.cron_schedule(day='last sun')
def some_decorated_task():
print "I am printed at 00:00:00 on the last Sunday of every month!"

更强大的使用方法可以进一步参考官方文档。

最新文章

  1. 海康网络摄像机YV12转换为BGR,由opencv Mat显示 (转)
  2. Linux 基础操作
  3. iOS常用第三方开源框架和优秀开发者博客等
  4. [Voice communications] 音量的控制
  5. 安装mysql后ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var mysql 启动不了
  6. SQL Server 2008 数据库镜像部署实例之二 配置镜像,实施手动故障转移
  7. 自定义view获取宽高
  8. clion 帮助文档 EN
  9. SVN太旧,要更新问题
  10. angular Error: [ng:areq]
  11. System.Web.HttpContext.Current.Session为NULL值的问题?
  12. C#映射网络驱动器
  13. Android绘图机制(四)——使用HelloCharts开源框架搭建一系列炫酷图表,柱形图,折线图,饼状图和动画特效,抽丝剥茧带你认识图表之美
  14. OpenGL中VA,VAO,VBO和EBO的区别
  15. SQL注入之Sqli-labs系列第三十三关(基于宽字符逃逸注入)
  16. python读取excel中单元格的内容返回的5种类型
  17. Math.floor(-8.5)=多少?
  18. c#中的as,is和强转
  19. Data Guard 主备库角色转换
  20. Spring中的IOC示例

热门文章

  1. linux下定时任务的使用
  2. WCF 入门 (18)
  3. jQuery使用之(四)处理页面的表单元素
  4. linux用终端上传文件和文件家到远程的服务器
  5. web服务器
  6. G-nav-01
  7. 使用gitlab+jenkins+saltstack+rsync自动部署Web应用
  8. LINQ构建交叉表
  9. xcode7 __weak 导致报错 is unavailable
  10. c语言的数学函数ceil、floor、round