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

📄 jobstorecmt.java

📁 定时器开源项目, 相对于 jcrontab, Quartz 算是更完整的一个项目, 随著开发的版本上来, 他已经脱离只是写在程序里面的计时器, 在指定的时间或区间, 处理所指定的事件. 也加入了 se
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
            throws JobPersistenceException {        Connection conn = getConnection();        try {            // no locks necessary for read...            return getJobGroupNames(conn, ctxt);        } finally {            closeConnection(conn);        }    }    /**     * <p>     * Get the names of all of the <code>{@link org.quartz.Trigger}</code>     * groups.     * </p>     *      * <p>     * If there are no known group names, the result should be a zero-length     * array (not <code>null</code>).     * </p>     */    public String[] getTriggerGroupNames(SchedulingContext ctxt)            throws JobPersistenceException {        Connection conn = getConnection();        try {            // no locks necessary for read...            return getTriggerGroupNames(conn, ctxt);        } finally {            closeConnection(conn);        }    }    /**     * <p>     * Get the names of all of the <code>{@link org.quartz.Calendar}</code> s     * in the <code>JobStore</code>.     * </p>     *      * <p>     * If there are no Calendars in the given group name, the result should be     * a zero-length array (not <code>null</code>).     * </p>     */    public String[] getCalendarNames(SchedulingContext ctxt)            throws JobPersistenceException {        Connection conn = getConnection();        try {            // no locks necessary for read...            return getCalendarNames(conn, ctxt);        } finally {            closeConnection(conn);        }    }    /**     * <p>     * Get all of the Triggers that are associated to the given Job.     * </p>     *      * <p>     * If there are no matches, a zero-length array should be returned.     * </p>     */    public Trigger[] getTriggersForJob(SchedulingContext ctxt, String jobName,            String groupName) throws JobPersistenceException {        Connection conn = getConnection();        try {            // no locks necessary for read...            return getTriggersForJob(conn, ctxt, jobName, groupName);        } finally {            closeConnection(conn);        }    }    /**     * <p>     * Get the current state of the identified <code>{@link Trigger}</code>.     * </p>     *      * @see Trigger#STATE_NORMAL     * @see Trigger#STATE_PAUSED     * @see Trigger#STATE_COMPLETE     * @see Trigger#STATE_ERROR     * @see Trigger#STATE_NONE     */    public int getTriggerState(SchedulingContext ctxt, String triggerName,            String groupName) throws JobPersistenceException {        Connection conn = getConnection();        try {            // no locks necessary for read...            return getTriggerState(conn, ctxt, triggerName, groupName);        } finally {            closeConnection(conn);        }    }    //---------------------------------------------------------------------------    // trigger state manipulation methods    //---------------------------------------------------------------------------    /**     * <p>     * Pause the <code>{@link org.quartz.Trigger}</code> with the given name.     * </p>     *      * @see #resumeTrigger(SchedulingContext, String, String)     */    public void pauseTrigger(SchedulingContext ctxt, String triggerName,            String groupName) throws JobPersistenceException {        Connection conn = getConnection();        boolean transOwner = false;        try {            getLockHandler().obtainLock(conn, LOCK_TRIGGER_ACCESS);            transOwner = true;            //getLockHandler().obtainLock(conn, LOCK_JOB_ACCESS);            pauseTrigger(conn, ctxt, triggerName, groupName);        } finally {            releaseLock(conn, LOCK_TRIGGER_ACCESS, transOwner);            closeConnection(conn);        }    }    /**     * <p>     * Pause all of the <code>{@link org.quartz.Trigger}s</code> in the     * given group.     * </p>     *      * @see #resumeTriggerGroup(SchedulingContext, String)     */    public void pauseTriggerGroup(SchedulingContext ctxt, String groupName)            throws JobPersistenceException {        Connection conn = getConnection();        boolean transOwner = false;        try {            getLockHandler().obtainLock(conn, LOCK_TRIGGER_ACCESS);            transOwner = true;            //getLockHandler().obtainLock(conn, LOCK_JOB_ACCESS);            pauseTriggerGroup(conn, ctxt, groupName);        } finally {            releaseLock(conn, LOCK_TRIGGER_ACCESS, transOwner);                      closeConnection(conn);        }    }    /**     * <p>     * Pause the <code>{@link org.quartz.Job}</code> with the given name - by     * pausing all of its current <code>Trigger</code>s.     * </p>     *      * @see #resumeJob(SchedulingContext, String, String)     */    public void pauseJob(SchedulingContext ctxt, String jobName,            String groupName) throws JobPersistenceException {        Connection conn = getConnection();        boolean transOwner = false;        try {            getLockHandler().obtainLock(conn, LOCK_TRIGGER_ACCESS);            transOwner = true;            //getLockHandler().obtainLock(conn, LOCK_JOB_ACCESS);            Trigger[] triggers = getTriggersForJob(conn, ctxt, jobName,                    groupName);            for (int j = 0; j < triggers.length; j++) {                pauseTrigger(conn, ctxt, triggers[j].getName(), triggers[j]                                                                         .getGroup());            }        } finally {            releaseLock(conn, LOCK_TRIGGER_ACCESS, transOwner);                      closeConnection(conn);        }    }    /**     * <p>     * Pause all of the <code>{@link org.quartz.Job}s</code> in the given     * group - by pausing all of their <code>Trigger</code>s.     * </p>     *      * @see #resumeJobGroup(SchedulingContext, String)     */    public void pauseJobGroup(SchedulingContext ctxt, String groupName)            throws JobPersistenceException {        Connection conn = getConnection();        boolean transOwner = false;        try {            getLockHandler().obtainLock(conn, LOCK_TRIGGER_ACCESS);            transOwner = true;            //getLockHandler().obtainLock(conn, LOCK_JOB_ACCESS);            String[] jobNames = getJobNames(conn, ctxt, groupName);            for (int i = 0; i < jobNames.length; i++) {                Trigger[] triggers = getTriggersForJob(conn, ctxt, jobNames[i],                        groupName);                for (int j = 0; j < triggers.length; j++) {                    pauseTrigger(conn, ctxt, triggers[j].getName(), triggers[j]                                                                             .getGroup());                }            }        } finally {            releaseLock(conn, LOCK_TRIGGER_ACCESS, transOwner);                      closeConnection(conn);        }    }    /**     * <p>     * Resume (un-pause) the <code>{@link org.quartz.Trigger}</code> with the     * given name.     * </p>     *      * <p>     * If the <code>Trigger</code> missed one or more fire-times, then the     * <code>Trigger</code>'s misfire instruction will be applied.     * </p>     *      * @see #pauseTrigger(SchedulingContext, String, String)     */    public void resumeTrigger(SchedulingContext ctxt, String triggerName,            String groupName) throws JobPersistenceException {        Connection conn = getConnection();        boolean transOwner = false;        try {            getLockHandler().obtainLock(conn, LOCK_TRIGGER_ACCESS);            transOwner = true;            //getLockHandler().obtainLock(conn, LOCK_JOB_ACCESS);            resumeTrigger(conn, ctxt, triggerName, groupName);        } finally {            releaseLock(conn, LOCK_TRIGGER_ACCESS, transOwner);            closeConnection(conn);        }    }    /**     * <p>     * Resume (un-pause) all of the <code>{@link org.quartz.Trigger}s</code>     * in the given group.     * </p>     *      * <p>     * If any <code>Trigger</code> missed one or more fire-times, then the     * <code>Trigger</code>'s misfire instruction will be applied.     * </p>     *      * @see #pauseTriggerGroup(SchedulingContext, String)     */    public void resumeTriggerGroup(SchedulingContext ctxt, String groupName)            throws JobPersistenceException {        Connection conn = getConnection();        boolean transOwner = false;        try {            getLockHandler().obtainLock(conn, LOCK_TRIGGER_ACCESS);            transOwner = true;            //getLockHandler().obtainLock(conn, LOCK_JOB_ACCESS);            resumeTriggerGroup(conn, ctxt, groupName);        } finally {            releaseLock(conn, LOCK_TRIGGER_ACCESS, transOwner);                      closeConnection(conn);        }    }    /**     * <p>     * Resume (un-pause) the <code>{@link org.quartz.Job}</code> with the     * given name.     * </p>     *      * <p>     * If any of the <code>Job</code>'s<code>Trigger</code> s missed one     * or more fire-times, then the <code>Trigger</code>'s misfire     * instruction will be applied.     * </p>     *      * @see #pauseJob(SchedulingContext, String, String)     */    public void resumeJob(SchedulingContext ctxt, String jobName,            String groupName) throws JobPersistenceException {        Connection conn = getConnection();        boolean transOwner = false;        try {            getLockHandler().obtainLock(conn, LOCK_TRIGGER_ACCESS);            transOwner = true;            //getLockHandler().obtainLock(conn, LOCK_JOB_ACCESS);            Trigger[] triggers = getTriggersForJob(conn, ctxt, jobName,                    groupName);            for (int j = 0; j < triggers.length; j++) {                resumeTrigger(conn, ctxt, triggers[j].getName(), triggers[j]                                                                          .getGroup());            }        } finally {            releaseLock(conn, LOCK_TRIGGER_ACCESS, transOwner);                      closeConnection(conn);        }    }    /**     * <p>     * Resume (un-pause) all of the <code>{@link org.quartz.Job}s</code> in     * the given group.     * </p>     *      * <p>     * If any of the <code>Job</code> s had <code>Trigger</code> s that     * missed one or more fire-times, then the <code>Trigger</code>'s     * misfire instruction will be applied.     * </p>     *      * @see #pauseJobGroup(SchedulingContext, String)     */    public void resumeJobGroup(SchedulingContext ctxt, String groupName)            throws JobPersistenceException {        Connection conn = getConnection();        boolean transOwner = false;        try {            getLockHandler().obtainLock(conn, LOCK_TRIGGER_ACCESS);            transOwner = true;            //getLockHandler().obtainLock(conn, LOCK_JOB_ACCESS);            String[] jobNames = getJobNames(conn, ctxt, groupName);            for (int i = 0; i < jobNames.length; i++) {                Trigger[] triggers = getTriggersForJob(conn, ctxt, jobNames[i],                        groupName);                for (int j = 0; j < triggers.length; j++) {                    resumeTrigger(conn, ctxt, triggers[j].getName(),                            triggers[j].getGroup());                }            }        } finally {            releaseLock(conn, LOCK_TRIGGER_ACCESS, transOwner);                      closeConnection(conn);        }    }    /**     * <p>     * Pause all triggers - equivalent of calling <code>pauseTriggerGroup(group)</code>     * on every group.     * </p>     * 

⌨️ 快捷键说明

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