加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_潮州站长网 (http://www.0768zz.com/)- 物联安全、建站、操作系统、云计算、数据迁移!
当前位置: 首页 > 教程 > 正文

Python之Scheduler框架介绍

发布时间:2021-12-16 12:49:24 所属栏目:教程 来源:互联网
导读:Python的Scheduler框架是模仿Java的Quartz框架写的,用起来还是比较不错的,这里向大家强烈推荐下。下载地址:http://pypi.python.org/pypi/APScheduler/2.0.3 1. 指定特定时间运行某一任务,可以通过如下方式: from apscheduler.scheduler import Schedule

Python的Scheduler框架是模仿Java的Quartz框架写的,用起来还是比较不错的,这里向大家强烈推荐下。下载地址:http://pypi.python.org/pypi/APScheduler/2.0.3
    1. 指定特定时间运行某一任务,可以通过如下方式:
 
from apscheduler.scheduler import Scheduler  
 
sched = Scheduler()  
sched.daemonic = False
 
def job_function(text):  
    print text  
 
from datetime import datetime  
job = sched.add_date_job(job_function, datetime(2012, 04, 12, 10, 13, 59), ['Hello World'])  
 
sched.start()
    2. 有些时候,我们需要每隔一定时间运行一下任务Interval-based scheduling的方式,如下:
 
from apscheduler.scheduler import Scheduler  
 
sched = Scheduler()  
sched.daemonic = False
 
def job_function():  
    print "Hello World"
 
sched.add_interval_job(job_function, hours=2)  
sched.add_interval_job(job_function, hours=2, start_date='2012-04-12 09:51:59')  
 
sched.start()
    除此之外,也可以使用Decorator的方式,如下:
 
from apscheduler.scheduler import Scheduler  
 
sched = Scheduler()  
sched.daemonic = False
sched.start()  
 
@sched.interval_schedule(hours=2, start_date='2012-04-12 09:54:59')  
def job_function():  
    print "Hello World"
    如果想解除Decorator功能方法,可以通过如下方式:
 
scheduler.unschedule_job(job_function.job)
     3. 如果我们想实现类似Linux下的crontab功能,可以通过Cron-style scheduling方式来实现,如下:
 
from apscheduler.scheduler import Scheduler  
 
sched = Scheduler()  
sched.daemonic = False
 
def job_function():  
    print "Hello World"
 
# Schedules job_function to be run on the third Friday  
# of June, July, August, November and December at 00:00, 01:00, 02:00 and 03:00  
sched.add_cron_job(job_function, month='6-8,11-12', day='3rd fri', hour='0-3')  
 
sched.start()
    同样,也可以通过Decorator方式来实现,如下:
 
from apscheduler.scheduler import Scheduler  
 
sched = Scheduler()  
sched.daemonic = False
sched.start()  
 
@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!" 

(编辑:我爱制作网_潮州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读