apspring schedulee 支撑多少任务

5608人阅读
linux(124)
http://blog.csdn.net/chosen0ne/article/details/7842421
&&&是基于的一个Python定时任务框架,实现了Quartz的所有功能,使用起来十分方便。提供了基于日期、固定时间间隔以及crontab类型的任务,并且可以持久化任务。基于这些功能,我们可以很方便的实现一个python定时任务系统,写python还是要比java舒服多了。
& & & & 安装过程很简单,可以基于easy_install和源码。
& & & & 或者下载,运行命令:
2. cron job例子
& & & & APScheduler是进程内的调度器,可以定时触发具体的函数,并且可以访问应用的所有变量和函数。在web应用中通过APScheduler实现定时任务是很方便的。下面看例子:
& & & & 上面通过装饰器定义了cron job,可以通过函数scheduler.add_cron_job添加,用装饰器更方便。Scheduler构造函数中传入daemonic参数,表示执行线程是非守护的,在Schduler的文档中推荐使用非守护线程:
& & & & 具体cron job的配置参看,基本上与Quartz一致。
& & & & 在添加job时还有一个比较重要的参数max_instances,指定一个job的并发实例数,默认值是1。默认情况下,如果一个job准备执行,但是该job的前一个实例尚未执行完,则后一个job会失败,可以通过这个参数来改变这种情况。
& & & & APScheduler提供了jobstore用于存储job的执行信息,默认使用的是RAMJobStore,还提供了SQLAlchemyJobStore、ShelveJobStore和MongoDBJobStore。APScheduler允许同时使用多个jobstore,通过别名(alias)区分,在添加job时需要指定具体的jobstore的别名,否则使用的是别名是default的jobstore,即RAMJobStore。下面以MongoDBJobStore举例说明。
& & & & 注意start必须在添加job动作之后调用,否则会抛错。默认会把job信息保存在apscheduler数据库下的jobs表:
& & & & 上面就是存储的具体信息。
4.异常处理
& & & & 当job抛出异常时,APScheduler会默默的把他吞掉,不提供任何提示,这不是一种好的实践,我们必须知晓程序的任何差错。APScheduler提供注册listener,可以监听一些事件,包括:job抛出异常、job没有来得及执行等。
EVENT_SCHEDULER_START
SchedulerEvent
The scheduler is started
EVENT_SCHEDULER_SHUTDOWN
SchedulerEvent
The scheduler is shut down
EVENT_JOBSTORE_ADDED
JobStoreEvent
A job store is added to the scheduler
EVENT_JOBSTORE_REMOVED
JobStoreEvent
A job store is removed from the scheduler
EVENT_JOBSTORE_JOB_ADDED
JobStoreEvent
A job is added to a job store
EVENT_JOBSTORE_JOB_REMOVED
JobStoreEvent
A job is removed from a job store
EVENT_JOB_EXECUTED
A job is executed successfully
EVENT_JOB_ERROR
A job raised an exception during execution
EVENT_JOB_MISSED
A job’s execution time is missed
& & & & 看下面的例子,监听异常和miss事件,这里用logging模块打印日志,logger.exception()可以打印出异常堆栈信息。
& & & & 事件的属性包括:
job&– the job instance in questionscheduled_run_time&– the time when the job was scheduled to be runretval&– the return value of the successfully executed jobexception&– the exception raised by the jobtraceback&– the traceback object associated with the exception
& & & & 最后,需要注意一点当job不以daemon模式运行时,并且APScheduler也不是daemon的,那么在关闭脚本时,Ctrl + C是不奏效的,必须kill才可以。可以通过命令实现关闭脚本:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:6566662次
积分:18810
积分:18810
排名:第331名
原创:266篇
转载:335篇
评论:460条
目录和样章下载:
本人曾健生,家乡是佛山,现在广州工作,《App后台开发运维和架构实践》一书作者,曾经负责社交app &ekeo&和&米信&的后端开发,目前就职于云后端平台bmob从事云服务方面的开发工作(想了解bmob点击)
“app后端技术” qq群:
文章:60篇
阅读:577218
(1)(1)(4)(1)(11)(4)(1)(2)(2)(1)(1)(7)(3)(5)(2)(8)(10)(12)(4)(6)(1)(15)(6)(2)(3)(3)(1)(15)(5)(7)(12)(7)(12)(4)(5)(6)(4)(2)(3)(9)(9)(19)(3)(6)(10)(20)(7)(4)(43)(50)(15)(26)(36)(38)(21)(11)(7)(14)(1)(1)(2)(2)(7)(5)(1)(1)(8)(11)(8)(7)}

我要回帖

更多关于 spring schedule 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信