📄 driverdelegate.java
字号:
/* * Copyright 2004-2005 OpenSymphony * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy * of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. * *//* * Previously Copyright (c) 2001-2004 James House */package org.quartz.impl.jdbcjobstore;import java.io.IOException;import java.sql.Connection;import java.sql.SQLException;import java.util.List;import java.util.Set;import org.quartz.Calendar;import org.quartz.CronTrigger;import org.quartz.JobDataMap;import org.quartz.JobDetail;import org.quartz.SimpleTrigger;import org.quartz.Trigger;import org.quartz.spi.ClassLoadHelper;import org.quartz.utils.Key;import org.quartz.utils.TriggerStatus;/** * <p> * This is the base interface for all driver delegate classes. * </p> * * <p> * This interface is very similar to the <code>{@link * org.quartz.spi.JobStore}</code> * interface except each method has an additional <code>{@link java.sql.Connection}</code> * parameter. * </p> * * <p> * Unless a database driver has some <strong>extremely-DB-specific</strong> * requirements, any DriverDelegate implementation classes should extend the * <code>{@link org.quartz.impl.jdbcjobstore.StdJDBCDelegate}</code> class. * </p> * * @author <a href="mailto:jeff@binaryfeed.org">Jeffrey Wescott</a> * @author James House */interface DriverDelegate { /* * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * * Interface. * * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ //--------------------------------------------------------------------------- // startup / recovery //--------------------------------------------------------------------------- /** * <p> * Update all triggers having one of the two given states, to the given new * state. * </p> * * @param conn * the DB Connection * @param newState * the new state for the triggers * @param oldState1 * the first old state to update * @param oldState2 * the second old state to update * @return number of rows updated */ int updateTriggerStatesFromOtherStates(Connection conn, String newState, String oldState1, String oldState2) throws SQLException; /** * <p> * Get the names of all of the triggers that have misfired - according to * the given timestamp. * </p> * * @param conn * the DB Connection * @return an array of <code>{@link * org.quartz.utils.Key}</code> objects */ Key[] selectMisfiredTriggers(Connection conn, long ts) throws SQLException; /** * <p> * Get the names of all of the triggers in the given state that have * misfired - according to the given timestamp. * </p> * * @param conn * the DB Connection * @return an array of <code>{@link * org.quartz.utils.Key}</code> objects */ Key[] selectMisfiredTriggersInState(Connection conn, String state, long ts) throws SQLException; /** * <p> * Get the names of all of the triggers in the given states that have * misfired - according to the given timestamp. No more than count will * be returned. * </p> * * @param conn the DB Connection * @param count the most misfired triggers to return, negative for all * @param resultList Output parameter. A List of * <code>{@link org.quartz.utils.Key}</code> objects. Must not be null. * * @return Whether there are more misfired triggers left to find beyond * the given count. */ boolean selectMisfiredTriggersInStates(Connection conn, String state1, String state2, long ts, int count, List resultList) throws SQLException; /** * <p> * Get the number of triggers in the given states that have * misfired - according to the given timestamp. * </p> * * @param conn the DB Connection */ int countMisfiredTriggersInStates( Connection conn, String state1, String state2, long ts) throws SQLException; /** * <p> * Get the names of all of the triggers in the given group and state that * have misfired - according to the given timestamp. * </p> * * @param conn * the DB Connection * @return an array of <code>{@link * org.quartz.utils.Key}</code> objects */ Key[] selectMisfiredTriggersInGroupInState(Connection conn, String groupName, String state, long ts) throws SQLException; /** * <p> * Select all of the triggers for jobs that are requesting recovery. The * returned trigger objects will have unique "recoverXXX" trigger names and * will be in the <code>{@link * org.quartz.Scheduler}.DEFAULT_RECOVERY_GROUP</code> * trigger group. * </p> * * <p> * In order to preserve the ordering of the triggers, the fire time will be * set from the <code>COL_FIRED_TIME</code> column in the <code>TABLE_FIRED_TRIGGERS</code> * table. The caller is responsible for calling <code>computeFirstFireTime</code> * on each returned trigger. It is also up to the caller to insert the * returned triggers to ensure that they are fired. * </p> * * @param conn * the DB Connection * @return an array of <code>{@link org.quartz.Trigger}</code> objects */ Trigger[] selectTriggersForRecoveringJobs(Connection conn) throws SQLException, IOException, ClassNotFoundException; /** * <p> * Delete all fired triggers. * </p> * * @param conn * the DB Connection * @return the number of rows deleted */ int deleteFiredTriggers(Connection conn) throws SQLException; /** * <p> * Delete all fired triggers of the given instance. * </p> * * @param conn * the DB Connection * @return the number of rows deleted */ int deleteFiredTriggers(Connection conn, String instanceId) throws SQLException; /** * <p> * Delete all volatile fired triggers. * </p> * * @param conn * the DB Connection * @return the number of rows deleted */ int deleteVolatileFiredTriggers(Connection conn) throws SQLException; /** * <p> * Get the names of all of the triggers that are volatile. * </p> * * @param conn * the DB Connection * @return an array of <code>{@link * org.quartz.utils.Key}</code> objects */ Key[] selectVolatileTriggers(Connection conn) throws SQLException; /** * <p> * Get the names of all of the jobs that are volatile. * </p> * * @param conn * the DB Connection * @return an array of <code>{@link * org.quartz.utils.Key}</code> objects */ Key[] selectVolatileJobs(Connection conn) throws SQLException; //--------------------------------------------------------------------------- // jobs //--------------------------------------------------------------------------- /** * <p> * Insert the job detail record. * </p> * * @param conn * the DB Connection * @param job * the job to insert * @return number of rows inserted * @throws IOException * if there were problems serializing the JobDataMap */ int insertJobDetail(Connection conn, JobDetail job) throws IOException, SQLException; /** * <p> * Update the job detail record. * </p> * * @param conn * the DB Connection * @param job * the job to update * @return number of rows updated * @throws IOException * if there were problems serializing the JobDataMap */ int updateJobDetail(Connection conn, JobDetail job) throws IOException, SQLException; /** * <p> * Get the names of all of the triggers associated with the given job. * </p> * * @param conn * the DB Connection * @param jobName * the job name * @param groupName * the job group * @return an array of <code>{@link * org.quartz.utils.Key}</code> objects */ Key[] selectTriggerNamesForJob(Connection conn, String jobName, String groupName) throws SQLException; /** * <p> * Delete all job listeners for the given job. * </p> * * @param conn * the DB Connection * @param jobName * the name of the job * @param groupName * the group containing the job * @return the number of rows deleted */ int deleteJobListeners(Connection conn, String jobName, String groupName) throws SQLException; /** * <p> * Delete the job detail record for the given job. * </p> * * @param conn * the DB Connection * @param jobName * the name of the job * @param groupName * the group containing the job * @return the number of rows deleted */ int deleteJobDetail(Connection conn, String jobName, String groupName) throws SQLException; /** * <p> * Check whether or not the given job is stateful. * </p> * * @param conn * the DB Connection * @param jobName * the name of the job * @param groupName * the group containing the job * @return true if the job exists and is stateful, false otherwise */ boolean isJobStateful(Connection conn, String jobName, String groupName) throws SQLException; /** * <p> * Check whether or not the given job exists. * </p> * * @param conn * the DB Connection * @param jobName * the name of the job * @param groupName * the group containing the job * @return true if the job exists, false otherwise */ boolean jobExists(Connection conn, String jobName, String groupName) throws SQLException; /** * <p> * Update the job data map for the given job. * </p> * * @param conn * the DB Connection * @param job * the job to update * @return the number of rows updated * @throws IOException * if there were problems serializing the JobDataMap */ int updateJobData(Connection conn, JobDetail job) throws IOException, SQLException; /** * <p> * Associate a listener with a job. * </p> * * @param conn * the DB Connection * @param job * the job to associate with the listener * @param listener * the listener to insert * @return the number of rows inserted */ int insertJobListener(Connection conn, JobDetail job, String listener) throws SQLException; /** * <p> * Get all of the listeners for a given job. * </p> * * @param conn * the DB Connection * @param jobName * the job name whose listeners are wanted * @param groupName * the group containing the job * @return array of <code>String</code> listener names */ String[] selectJobListeners(Connection conn, String jobName, String groupName) throws SQLException; /** * <p> * Select the JobDetail object for a given job name / group name. * </p> * * @param conn * the DB Connection * @param jobName * the job name whose listeners are wanted * @param groupName * the group containing the job * @return the populated JobDetail object * @throws ClassNotFoundException * if a class found during deserialization cannot be found or if * the job class could not be found * @throws IOException * if deserialization causes an error */ JobDetail selectJobDetail(Connection conn, String jobName, String groupName, ClassLoadHelper loadHelper) throws ClassNotFoundException, IOException, SQLException; /** * <p> * Select the total number of jobs stored. * </p> * * @param conn * the DB Connection * @return the total number of jobs stored */ int selectNumJobs(Connection conn) throws SQLException; /** * <p> * Select all of the job group names that are stored. * </p> * * @param conn * the DB Connection * @return an array of <code>String</code> group names */ String[] selectJobGroups(Connection conn) throws SQLException; /** * <p> * Select all of the jobs contained in a given group. * </p> * * @param conn * the DB Connection * @param groupName * the group containing the jobs * @return an array of <code>String</code> job names */ String[] selectJobsInGroup(Connection conn, String groupName) throws SQLException; //--------------------------------------------------------------------------- // triggers //--------------------------------------------------------------------------- /** * <p> * Insert the base trigger data. * </p> * * @param conn
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -