quartz源码分析
来源:互联网 发布:java电商项目面试技巧 编辑:程序博客网 时间:2024/05/21 17:17
Package quartz-core
org.quartz.QuartzScheduler.java
类 QuartzScheduler
方法:
1. 构造函数
public QuartzScheduler(QuartzSchedulerResources resources, long idleWaitTime, @Deprecated long dbRetryInterval)
schedThreadExecutor.execute(this.schedThread);
addInternalJobListener(jobMgr);
2. initialize()
bind();把scheduler绑定到一个RMI registry
registerJMX();把scheduler绑定到JMSServer
3. start()
所有未被触发的trigger会传给一个triggerlistener
notifySchedulerListenersStarting();
notifySchedulerListenersStarted();
4. startDelayed()
public void startDelayed(final int seconds) throws SchedulerException{ if (shuttingDown || closed) { throw new SchedulerException( "The Scheduler cannot be restarted after shutdown() has been called."); } Thread t = new Thread(new Runnable() { public void run() { try { Thread.sleep(seconds * 1000L); } catch(InterruptedException ignore) {} try { start(); } catch(SchedulerException se) { getLog().error("Unable to start secheduler after startup delay.", se); } } }); t.start();}
5. standby()
暂停
resources.getJobStore().schedulerPaused();schedThread.togglePause(true);getLog().info( "Scheduler " + resources.getUniqueIdentifier() + " paused.");notifySchedulerListenersInStandbyMode();其中,
public boolean isInStandbyMode() { return schedThread.isPaused();}
6. shundown()
public void shutdown(boolean waitForJobsToComplete) {
standby();schedThread.halt(waitForJobsToComplete);notifySchedulerListenersShuttingdown();
resources.getThreadPool().shutdown(waitForJobsToComplete);
7. scheduleJob()
把job加到scheduler中,并关联相应的trigger。
public Date scheduleJob(JobDetail jobDetail, Trigger trigger) throws SchedulerException
OperableTrigger trig = (OperableTrigger)trigger;if (trigger.getJobKey() == null) { trig.setJobKey(jobDetail.getKey());} else if (!trigger.getJobKey().equals(jobDetail.getKey())) { throw new SchedulerException( "Trigger does not reference given job!");}trig.validate();
resources.getJobStore().storeJobAndTrigger(jobDetail, trig);notifySchedulerListenersJobAdded(jobDetail);notifySchedulerThread(trigger.getNextFireTime().getTime());notifySchedulerListenersSchduled(trigger);
0 0
- quartz 源码分析
- quartz源码分析
- Quartz源码分析
- Quartz 集群源码分析
- Quartz源码分析(二)
- quartz源码分析(四)
- Quartz源码分析之Job
- Quartz源码分析之Trigger
- Quartz源码分析之Scheduler
- quartz-2.2.3源码分析
- Quartz源码分析之HelloWorld示例
- Quartz源码——QuartzSchedulerThread.run() 源码分析(三)
- spring Quartz 源码分析--触发器类CronTriggerBean源码剖析
- spring Quartz 源码分析--触发器类SimpleTriggerBean源码剖析
- Quartz recovery 及misfired机制的源码分析
- quartz集群调度机制调研及源码分析
- quartz集群调度机制调研及源码分析
- quartz集群调度机制调研及源码分析
- CSS3自定义滚动条
- Linux常用
- 191.Number of 1 Bits
- Linux音频设备驱动
- AMD 和 CMD 的区别有哪些?RequireJS 和 SeaJS 的差异
- quartz源码分析
- IC卡应用
- IC卡读写
- 洛谷1018 乘积最大
- Android内存泄漏问题
- 浏览器URL编码
- RBAC权限管理
- POJ 2718(STL全排列)
- PetaLinux安装教程,基于Ubuntu