⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 quartzscheduler.java

📁 定时器开源项目, 相对于 jcrontab, Quartz 算是更完整的一个项目, 随著开发的版本上来, 他已经脱离只是写在程序里面的计时器, 在指定的时间或区间, 处理所指定的事件. 也加入了 se
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                || jobListener.getName().length() == 0)                throw new IllegalArgumentException(                        "JobListener name cannot be empty.");        globalJobListeners.add(jobListener);    }    /**     * <p>     * Add the given <code>{@link org.quartz.JobListener}</code> to the     * <code>Scheduler</code>'s list, of registered <code>JobListener</code>s.     */    public void addJobListener(JobListener jobListener) {        if (jobListener.getName() == null                || jobListener.getName().length() == 0)                throw new IllegalArgumentException(                        "JobListener name cannot be empty.");        jobListeners.put(jobListener.getName(), jobListener);    }    /**     * <p>     * Remove the given <code>{@link org.quartz.JobListener}</code> from the     * <code>Scheduler</code>'s list of <i>global</i> listeners.     * </p>     *      * @return true if the identifed listener was found in the list, and     *         removed.     */    public boolean removeGlobalJobListener(JobListener jobListener) {        return globalJobListeners.remove(jobListener);    }    /**     * <p>     * Remove the identifed <code>{@link org.quartz.JobListener}</code> from     * the <code>Scheduler</code>'s list of registered listeners.     * </p>     *      * @return true if the identifed listener was found in the list, and     *         removed.     */    public boolean removeJobListener(String name) {        Object o = jobListeners.remove(name);        if (o != null) return true;        return false;    }    /**     * <p>     * Get a List containing all of the <code>{@link org.quartz.JobListener}</code>     * s in the <code>Scheduler</code>'s<i>global</i> list.     * </p>     */    public List getGlobalJobListeners() {        return (List) globalJobListeners.clone();    }    /**     * <p>     * Get a Set containing the names of all the <i>non-global</i><code>{@link org.quartz.JobListener}</code>     * s registered with the <code>Scheduler</code>.     * </p>     */    public Set getJobListenerNames() {        return Collections.unmodifiableSet(jobListeners.keySet());    }    /**     * <p>     * Get the <i>non-global</i><code>{@link org.quartz.JobListener}</code>     * that has the given name.     * </p>     */    public JobListener getJobListener(String name) {        return (JobListener) jobListeners.get(name);    }    /**     * <p>     * Add the given <code>{@link org.quartz.TriggerListener}</code> to the     * <code>Scheduler</code>'s<i>global</i> list.     * </p>     *      * <p>     * Listeners in the 'global' list receive notification of execution events     * for ALL <code>{@link org.quartz.Trigger}</code>s.     * </p>     */    public void addGlobalTriggerListener(TriggerListener triggerListener) {        if (triggerListener.getName() == null                || triggerListener.getName().length() == 0)                throw new IllegalArgumentException(                        "TriggerListener name cannot be empty.");        globalTriggerListeners.add(triggerListener);    }    /**     * <p>     * Add the given <code>{@link org.quartz.TriggerListener}</code> to the     * <code>Scheduler</code>'s list, of registered <code>TriggerListener</code>s.     */    public void addTriggerListener(TriggerListener triggerListener) {        if (triggerListener.getName() == null                || triggerListener.getName().length() == 0)                throw new IllegalArgumentException(                        "TriggerListener name cannot be empty.");        triggerListeners.put(triggerListener.getName(), triggerListener);    }    /**     * <p>     * Remove the given <code>{@link org.quartz.TriggerListener}</code> from     * the <code>Scheduler</code>'s list of <i>global</i> listeners.     * </p>     *      * @return true if the identifed listener was found in the list, and     *         removed.     */    public boolean removeGlobalTriggerListener(TriggerListener triggerListener) {        return globalTriggerListeners.remove(triggerListener);    }    /**     * <p>     * Remove the identifed <code>{@link org.quartz.TriggerListener}</code>     * from the <code>Scheduler</code>'s list of registered listeners.     * </p>     *      * @return true if the identifed listener was found in the list, and     *         removed.     */    public boolean removeTriggerListener(String name) {        Object o = triggerListeners.remove(name);        if (o != null) return true;        return false;    }    /**     * <p>     * Get a list containing all of the <code>{@link org.quartz.TriggerListener}</code>     * s in the <code>Scheduler</code>'s<i>global</i> list.     * </p>     */    public List getGlobalTriggerListeners() {        return (List) globalTriggerListeners.clone();    }    /**     * <p>     * Get a Set containing the names of all the <i>non-global</i><code>{@link org.quartz.TriggerListener}</code>     * s registered with the <code>Scheduler</code>.     * </p>     */    public Set getTriggerListenerNames() {        return Collections.unmodifiableSet(triggerListeners.keySet());    }    /**     * <p>     * Get the <i>non-global</i><code>{@link org.quartz.TriggerListener}</code>     * that has the given name.     * </p>     */    public TriggerListener getTriggerListener(String name) {        return (TriggerListener) triggerListeners.get(name);    }    /**     * <p>     * Register the given <code>{@link SchedulerListener}</code> with the     * <code>Scheduler</code>.     * </p>     */    public void addSchedulerListener(SchedulerListener schedulerListener) {        schedulerListeners.add(schedulerListener);    }    /**     * <p>     * Remove the given <code>{@link SchedulerListener}</code> from the     * <code>Scheduler</code>.     * </p>     *      * @return true if the identifed listener was found in the list, and     *         removed.     */    public boolean removeSchedulerListener(SchedulerListener schedulerListener) {        return schedulerListeners.remove(schedulerListener);    }    /**     * <p>     * Get a List containing all of the <code>{@link SchedulerListener}</code>     * s registered with the <code>Scheduler</code>.     * </p>     */    public List getSchedulerListeners() {        return (List) schedulerListeners.clone();    }    protected void notifyJobStoreJobComplete(SchedulingContext ctxt,            Trigger trigger, JobDetail detail, int instCode)            throws JobPersistenceException {        resources.getJobStore().triggeredJobComplete(ctxt, trigger, detail,                instCode);    }    protected void notifySchedulerThread() {        if (isSignalOnSchedulingChange()) schedThread.signalSchedulingChange();    }    private List buildTriggerListenerList(String[] additionalLstnrs)            throws SchedulerException {        List triggerListeners = getGlobalTriggerListeners();        for (int i = 0; i < additionalLstnrs.length; i++) {            TriggerListener tl = getTriggerListener(additionalLstnrs[i]);            if (tl != null) triggerListeners.add(tl);            else                throw new SchedulerException("TriggerListener '"                        + additionalLstnrs[i] + "' not found.",                        SchedulerException.ERR_TRIGGER_LISTENER_NOT_FOUND);        }        return triggerListeners;    }    private List buildJobListenerList(String[] additionalLstnrs)            throws SchedulerException {        List jobListeners = getGlobalJobListeners();        for (int i = 0; i < additionalLstnrs.length; i++) {            JobListener jl = getJobListener(additionalLstnrs[i]);            if (jl != null) jobListeners.add(jl);            else                throw new SchedulerException("JobListener '"                        + additionalLstnrs[i] + "' not found.",                        SchedulerException.ERR_JOB_LISTENER_NOT_FOUND);        }        return jobListeners;    }    public boolean notifyTriggerListenersFired(JobExecutionContext jec)            throws SchedulerException {        // build a list of all trigger listeners that are to be notified...        List triggerListeners = buildTriggerListenerList(jec.getTrigger()                .getTriggerListenerNames());        boolean vetoedExecution = false;                // notify all trigger listeners in the list        java.util.Iterator itr = triggerListeners.iterator();        while (itr.hasNext()) {            TriggerListener tl = (TriggerListener) itr.next();            try {                tl.triggerFired(jec.getTrigger(), jec);                                if(tl.vetoJobExecution(jec.getTrigger(), jec))                    vetoedExecution = true;            } catch (Exception e) {                SchedulerException se = new SchedulerException(                        "TriggerListener '" + tl.getName()                                + "' threw exception: " + e.getMessage(), e);                se.setErrorCode(SchedulerException.ERR_TRIGGER_LISTENER);                throw se;            }        }                return vetoedExecution;    }        public void notifyTriggerListenersMisfired(Trigger trigger)            throws SchedulerException {        // build a list of all trigger listeners that are to be notified...        List triggerListeners = buildTriggerListenerList(trigger                .getTriggerListenerNames());        // notify all trigger listeners in the list        java.util.Iterator itr = triggerListeners.iterator();        while (itr.hasNext()) {            TriggerListener tl = (TriggerListener) itr.next();            try {                tl.triggerMisfired(trigger);            } catch (Exception e) {                SchedulerException se = new SchedulerException(                        "TriggerListener '" + tl.getName()                                + "' threw exception: " + e.getMessage(), e);                se.setErrorCode(SchedulerException.ERR_TRIGGER_LISTENER);                throw se;            }        }    }        public void notifyTriggerListenersComplete(JobExecutionContext jec,            int instCode) throws SchedulerException {        // build a list of all trigger listeners that are to be notified...        List triggerListeners = buildTriggerListenerList(jec.getTrigger()                .getTriggerListenerNames());        // notify all trigger listeners in the list        java.util.Iterator itr = triggerListeners.iterator();        while (itr.hasNext()) {            TriggerListener tl = (TriggerListener) itr.next();            try {                tl.triggerComplete(jec.getTrigger(), jec, instCode);            } catch (Exception e) {                SchedulerException se = new SchedulerException(                        "TriggerListener '" + tl.getName()                                + "' threw exception: " + e.getMessage(), e);                se.setErrorCode(SchedulerException.ERR_TRIGGER_LISTENER);                throw se;            }        }    }    public void notifyJobListenersToBeExecuted(JobExecutionContext jec)            throws SchedulerException {        // build a list of all job listeners that are to be notified...        List jobListeners = buildJobListenerList(jec.getJobDetail()                .getJobListenerNames());        // notify all job listeners        java.util.Iterator itr = jobListeners.iterator();        while (itr.hasNext()) {            JobListener jl = (JobListener) itr.next();            try {                jl.jobToBeExecuted(jec);            } catch (Exception e) {                SchedulerException se = new SchedulerException(                        "JobListener '" + jl.getName() + "' threw exception: "                                + e.getMessage(), e);                se.setErrorCode(SchedulerException.ERR_JOB_LISTENER);                throw se;            }        }    }    public void notifyJobListenersWasVetoed(JobExecutionContext jec)    throws SchedulerException {        // build a list of all job listeners that are to be notified...        List jobListeners = buildJobListenerList(jec.getJobDetail()                .getJobListenerNames());        // notify all job listeners        java.util.Iterator itr = jobListeners.iterator();        while (itr.hasNext()) {            JobListener jl = (JobListener) itr.next();            try {                jl.jobExecutionVetoed(jec);            } catch (Exception e) {                SchedulerException se = new SchedulerException(                        "JobListener '" + jl.getName() + "' threw exception: "                        + e.getMessage(), e);                se.setErrorCode(SchedulerException.ERR_JOB_LISTENER);                throw se;            }        }    }    public void notifyJobListenersWasExecuted(JobExecutionContext jec,            JobExecutionException je) throws SchedulerException {        // build a list of all job listeners that are to be notified...        List jobListeners = buildJobListenerList(jec.getJobDetail()                .getJobListenerNames());        // notify all job listeners        java.util.Iterator itr = jobListeners.iterator();        while (itr.hasNext()) {            JobListener jl = (JobListener) itr.next();            try {                jl.jobWasExecuted(jec, je);            } catch (Exception e) {                SchedulerException se = new SchedulerException(                        "JobListener '" + jl.getName() + "' threw exception: "                                + e.getMessage(), e);                se.setErrorCode(SchedulerException.ERR_JOB_LISTENER);                throw se;            }        }    }    public void notifySchedulerListenersError(String msg, SchedulerException se) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -