APScheduler —— Python化的Cron

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!"

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值