第三节:Quartz 执行过程

 

稍微往quartz里面看了下代码在加上自己的揣测,大概梳理下它的执行过程,是如何调度,如何执行任务的。

 

执行过程:

调度器初始化配置,比如JobStore,线程池,轮循线程,作业执行环境等

如果有任务来了就把任务扔到JobStore中,有另外的线程会根据触发机制来轮循JobStore中的job,如果满足执行条件就把它扔到线程池中执行,这样一次执行作业的任务就完成了。

 

其中

调度器类比如有:

Quartz.Impl. StdScheduler(标准调度器)

Quartz.Impl. RemoteScheduler(远程调度器)

 线程池有:

    Quartz.Simpl. SimpleThreadPool

  执行job的类有:

Quartz.Core.JobRunShell(运行我们写好的job的具体类,具体由线程池来调用执行)

Quartz.Core. QuartzScheduler

Quartz.Core.QuartzSchedulerThread

  存放job的容器有:

Quartz.Simpl.RAMJobStore(内存存储)和持久化的存储()

 触发器有:

Quartz.Impl.Triggers.CalendarIntervalTriggerImpl

Quartz.Impl.Triggers.SimpleTriggerImpl

Quartz.Impl.Triggers.DailyTimeIntervalTriggerImpl

 

然后把上面这些类套到执行过程中,如下:

首先通过调度工厂初始化简单的SimpleThreadPoolRAMJobStore最后得到StdScheduler,在通过QuartzScheduler把轮循线程QuartzSchedulerThread运行起来,当有带有触发器(SimpleTriggerImpl)的job进来时就扔到RAMJobStore中,如果满足执行条件该job就会被扔到SimpleThreadPool中由JobRunShell完成执行,这样一次执行作业的任务就完成了。

 

总结:了解了Quartz的整个执行过程对继续往下看来说是很重要的,但是上面好多地方都非常模糊的是由自己推测的,好多是不准确的,不管怎么今天接触到了Quartz 中大部分重要的类。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值