国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
淺析Quartz的集群配置
1、基本信息:
     Quartz是一個(gè)開(kāi)源的作業(yè)調(diào)度框架,它完全由java寫成,并設(shè)計(jì)用于J2Se和J2EE應(yīng)用中。它提供了巨大的靈活性而不犧牲簡(jiǎn)單性。你能夠用它來(lái)為執(zhí)行一個(gè)作業(yè)而創(chuàng)建簡(jiǎn)單的或復(fù)雜的調(diào)度。它有很多特征,如:數(shù)據(jù)庫(kù)支持,集群,插件,EJB作業(yè)預(yù)構(gòu)建,JavaMail及其它,支持cron-like表達(dá)式等等。其中集群配置一般比較復(fù)雜,那么在Quartz中如何配置它的集群特性呢?

2 Quartz的集群配置:
     2.1 實(shí)現(xiàn)集群的基本原理
          Quartz是通過(guò)借助關(guān)系數(shù)據(jù)庫(kù)和JDBC作業(yè)存儲(chǔ)來(lái)實(shí)現(xiàn)集群管理的。
         

     1、原理:     
          集群通過(guò)故障切換和負(fù)載平衡的功能,能給調(diào)度器帶來(lái)高可用性和伸縮性。目前集群只能工作在JDBC-JobStore(JobStore TX或者JobStoreCMT)方式下,從本質(zhì)上來(lái)說(shuō),是使集群上的每一個(gè)節(jié)點(diǎn)通過(guò)共享同一個(gè)數(shù)據(jù)庫(kù)來(lái)工作的(Quartz通過(guò)啟動(dòng)兩個(gè)維護(hù)線程來(lái)維護(hù)數(shù)據(jù)庫(kù)狀態(tài)實(shí)現(xiàn)集群管理,一個(gè)是檢測(cè)節(jié)點(diǎn)狀態(tài)線程,一個(gè)是恢復(fù)任務(wù)線程)。
        負(fù)載平衡是自動(dòng)完成的,集群的每個(gè)節(jié)點(diǎn)會(huì)盡快觸發(fā)任務(wù)。當(dāng)一個(gè)觸發(fā)器的觸發(fā)時(shí)間到達(dá)時(shí),第一個(gè)節(jié)點(diǎn)將會(huì)獲得任務(wù)(通過(guò)鎖定),成為執(zhí)行任務(wù)的節(jié)點(diǎn)。
                故障切換的發(fā)生是在當(dāng)一個(gè)節(jié)點(diǎn)正在執(zhí)行一個(gè)或者多個(gè)任務(wù)失敗的時(shí)候。當(dāng)一個(gè)節(jié)點(diǎn)失敗了,其他的節(jié)點(diǎn)會(huì)檢測(cè)到并且標(biāo) 識(shí)在失敗節(jié)點(diǎn)上正在進(jìn)行的數(shù)據(jù)庫(kù)中的任務(wù)。任何被標(biāo)記為可恢復(fù)(任務(wù)詳細(xì)信息的"requests recovery"屬性)的任務(wù)都會(huì)被其他的節(jié)點(diǎn)重新執(zhí)行。沒(méi)有標(biāo)記可恢復(fù)的任務(wù)只會(huì)被釋放出來(lái),將會(huì)在下次相關(guān)觸發(fā)器觸發(fā)時(shí)執(zhí)行。
     2、集群管理用到的表
          --任務(wù)詳細(xì)信息表
                         
    CREATE TABLE qrtz_job_details
    (
    JOB_NAME VARCHAR2(80) NOT NULL,
    JOB_GROUP VARCHAR2(80) NOT NULL,
    DESCRIPTION VARCHAR2(120) NULL,
    JOB_CLASS_NAME VARCHAR2(128) NOT NULL,
    IS_DURABLE VARCHAR2(1) NOT NULL,
    IS_VOLATILE VARCHAR2(1) NOT NULL,
    IS_STATEFUL VARCHAR2(1) NOT NULL,
    REQUESTS_RECOVERY VARCHAR2(1) NOT NULL, --可恢復(fù)標(biāo)記
    JOB_DATA BLOB NULL,
    PRIMARY KEY (JOB_NAME,JOB_GROUP)
    );


          
--觸發(fā)器與任務(wù)關(guān)聯(lián)表

                         
     CREATE TABLE qrtz_fired_triggers
    (
    ENTRY_ID VARCHAR2(95) NOT NULL,
    TRIGGER_NAME VARCHAR2(80) NOT NULL,
    TRIGGER_GROUP VARCHAR2(80) NOT NULL,
    IS_VOLATILE VARCHAR2(1) NOT NULL,
    INSTANCE_NAME VARCHAR2(80) NOT NULL,
    FIRED_TIME NUMBER(13) NOT NULL,
    STATE VARCHAR2(16) NOT NULL,
    JOB_NAME VARCHAR2(80) NULL,
    JOB_GROUP VARCHAR2(80) NULL,
    IS_STATEFUL VARCHAR2(1) NULL,
    REQUESTS_RECOVERY VARCHAR2(1) NULL, --可恢復(fù)標(biāo)記
    PRIMARY KEY (ENTRY_ID)
    );

                  --調(diào)度器狀態(tài)表

                         
     CREATE TABLE qrtz_scheduler_state
    (
    INSTANCE_NAME VARCHAR2(80) NOT NULL, --調(diào)度器實(shí)例ID
    LAST_CHECKIN_TIME NUMBER(13) NOT NULL, --上次檢查時(shí)間
    CHECKIN_INTERVAL NUMBER(13) NOT NULL, --檢查時(shí)間間隔
    RECOVERER VARCHAR2(80) NULL, --恢復(fù)調(diào)度器
    PRIMARY KEY (INSTANCE_NAME)
    );

          

     2.2 集群配置
        通過(guò)設(shè)置"org.quartz.jobStore.isClustered"屬性為"true"來(lái)激活集群特性。在集群中的每一個(gè)實(shí)例都必須有一 個(gè)唯一的"instance id" ("org.quartz.scheduler.instanceId" 屬性), 但是應(yīng)該有相同的"scheduler instance name" ("org.quartz.scheduler.instanceName"),也就是說(shuō)集群中的每一個(gè)實(shí)例都必須使用相同的 quartz.properties 配置文件。除了以下幾種例外,配置文件的內(nèi)容其他都必須相同:

 不同的線程池大小,
 不同的"org.quartz.scheduler.instanceId"屬性值(這個(gè)可以很容易做到,設(shè)定為"AUTO"即可)。
 注意: 永遠(yuǎn)不要在不同的機(jī)器上運(yùn)行集群,除非他們的時(shí)鐘是使用某種形式的同步服務(wù)(守護(hù))非常有規(guī)律的運(yùn)行(時(shí)鐘必須在一分一秒內(nèi))來(lái)達(dá)到同步。還有: 永遠(yuǎn)不要觸發(fā)一個(gè)非集群的實(shí)例,如果其他的實(shí)例正在同一個(gè)數(shù)據(jù)庫(kù)表上運(yùn)行。你將使你的數(shù)據(jù)嚴(yán)重腐蝕,出現(xiàn)非預(yù)期行為。
 示例及詳細(xì)配置說(shuō)明,請(qǐng)參照附錄Quartz配置文件說(shuō)明。


3 附錄
          3.1 Quartz配置文件說(shuō)明
               3.1.1 Quartz配置文件基本說(shuō)明
               3.1.2 Quartz配置文件詳細(xì)說(shuō)明
                    3.1.2.1  Scheduler主要屬性的配置
                        
    # Scheduler主要屬性的一般定義模式如下:
    #
    # org.quartz.scheduler.instanceName = SCHED_NAME
    # org.quartz.scheduler.instanceId = INSTANCE_ID
    # org.quartz.scheduler.threadName = THREAD_NAME
    # org.quartz.scheduler.rmi.export = false
    # org.quartz.scheduler.rmi.proxy = false
    # org.quartz.scheduler.rmi.registryHost = localhost
    # org.quartz.scheduler.rmi.registryPort = 1099
    # org.quartz.scheduler.rmi.createRegistry = never
    # org.quartz.scheduler.userTransactionURL = USER_TX_LOCATION
    # org.quartz.scheduler.wrapJobExecutionInUserTransaction = JOBS_IN_USER_TX
    # org.quartz.scheduler.idleWaitTime = IDLE_WAIT_TIME
    # org.quartz.scheduler.dbFailureRetryInterval = DB_FAILURE_RETRY_INTERVAL
    # org.quartz.scheduler.classLoadHelper.class = CLASS_LOAD_HELPER_CLASS
    # org.quartz.context.key.SOME_KEY = SOME_VALUE



                3.1.2.2   線程池(ThreadPool)的配置

                        
    # 定制一個(gè)線程池的一般模式如下:
    #
    # org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
    # org.quartz.threadPool.threadCount = THREAD_COUNT
    # org.quartz.threadPool.threadPriority = THREAD_PRIO
    #
    # 簡(jiǎn)單線程池(SimpleThreadPool)的選項(xiàng)參數(shù):
    #
    # org.quartz.threadPool.makeThreadsDaemons = DAEMON_THREADS
    # org.quartz.threadPool.threadsInheritGroupOfInitializingThread = INHERIT_GRP
    # org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = INHERIT_LDR
    #
    # or
    #
    # org.quartz.threadPool.class = com.mycompany.goo.FooThreadPool
    # org.quartz.threadPool.somePropOfFooThreadPool = someValue
    #

          

                     3.1.2.3 任務(wù)存儲(chǔ)(JobStore)的配置
                        
    # 定義一個(gè)任務(wù)存儲(chǔ)的一般模式如下:
    #
    # org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
    # org.quartz.jobStore.misfireThreshold = MISFIRE_THRESHOLD
    #
    # or
    #
    # org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.<JobStoreClass>
    # JobStoreClass 是下面其中的一個(gè):
    # - JobStoreTX 用于單機(jī)(standalone-Quartz)實(shí)現(xiàn)
    # - JobStoreCMT 用于基于應(yīng)用服務(wù)器容器管理事務(wù)(appserver-based container-managed transaction )的Quartz 實(shí)現(xiàn)
    #
    # org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.<DriverDelegateClass>
    # DriverDelegateClass 是下面其中的一個(gè):
    # - StdJDBCDelegate (用于許多 JDBC-compliant drivers)
    # - MSSQLDelegate (用于 Microsoft SQL Server drivers)
    # - PostgreSQLDelegate (用于 PostgreSQL drivers)
    # - WebLogicDelegate (用于 WebLogic drivers)
    # - oracle.OracleDelegate (用于 Oracle drivers)
    #
    # org.quartz.jobStore.useProperties = USE_PROPERTIES
    # org.quartz.jobStore.dataSource = DS_NAME
    # org.quartz.jobStore.tablePrefix = TABLE_PREFIX
    # org.quartz.jobStore.isClustered = IS_CLUSTERED
    # org.quartz.jobStore.selectWithLockSQL = LOCKING_SELECT_STATEMENT
    # org.quartz.jobStore.dontSetAutoCommitFalse = DONT_TURN_OFF_AUTO_COMMIT
    # org.quartz.jobStore.maxMisfiresToHandleAtATime = MAX_MISFIRE_HANDLE
    # org.quartz.jobStore.txIsolationLevelSerializable = SERIALIZABLE_ISOLATION
    #
    # 如果你使用JobStoreCMT,你還需要下面的參數(shù):
    #
    # org.quartz.jobStore.nonManagedTXDataSource = NON_MANAGED_TX_DS_NAME
    #
    # 并且如果你使用JobStoreCMT,下面的參數(shù)是可選的:
    #
    # org.quartz.jobStore.dontSetNonManagedTXConnectionAutoCommitFalse = DONT_TURN_OFF_AUTO_COMMIT
    # org.quartz.jobStore.txIsolationLevelReadCommitted = READ_COMMITTED_ISOLATION
    #
    #
    # 或者,使用一個(gè)用戶自定義JobStore實(shí)現(xiàn):
    #
    # org.quartz.jobStore.class = com.mycompany.goo.FooJobStore
    # org.quartz.jobStore.somePropOfFooJobStore = someValue
    #
    #

   


                    3.1.2.4 數(shù)據(jù)源的配置  
                        
    # (只有當(dāng)使用JDBCJobStore時(shí)需要, 或者一個(gè)插件需要JDBC)
    # -- 如果你的Scheduler非常忙碌,比如在一定的線程池內(nèi)執(zhí)行相同數(shù)目的任務(wù),那么你應(yīng)讓數(shù)據(jù)源的連接數(shù)等于線程數(shù) + 1
    #
    # 數(shù)據(jù)源定義的一般模式如下:
    #
    # org.quartz.dataSource.NAME.driver = DRIVER_CLASS_NAME
    # org.quartz.dataSource.NAME.URL = DB_URL
    # org.quartz.dataSource.NAME.user = DB_USER
    # org.quartz.dataSource.NAME.password = DB_PASSWORD
    # org.quartz.dataSource.NAME.maxConnections = DB_POOL_SIZE
    # org.quartz.dataSource.NAME.validationQuery= VALIDATION_QUERY
    #
    # or
    #
    # org.quartz.dataSource.NAME.jndiURL = DB_JNDI_URL
    #
    # or
    # org.quartz.dataSource.NAME.jndiURL = DB_JNDI_URL
    # org.quartz.dataSource.NAME.jndiAlwaysLookup = DB_JNDI_ALWAYS_LOOKUP
    # org.quartz.dataSource.NAME.java.naming.factory.initial = JNDI_CTXT_FACTORY
    # org.quartz.dataSource.NAME.java.naming.provider.url = JNDI_PROVIDER_URL
    # org.quartz.dataSource.NAME.java.naming.security.principal = JNDI_PRINCIPAL
    # org.quartz.dataSource.NAME.java.naming.security.credentials = JNDI_CREDENTIALS
    #
    #

      上面顯示了兩種數(shù)據(jù)源定義方式:一個(gè)數(shù)據(jù)源可以用給定的數(shù)據(jù)庫(kù)連接信息創(chuàng)建,也可以是利用應(yīng)用服務(wù)器管理生成的JNDI數(shù)據(jù)源的邏輯映射。 
 


            

                    3.1.2.5 Scheduler插件的配置
                        
    # SchedulerPlugin定義的一般模式如下:
    #
    # org.quartz.plugin.NAME.class = PLUGIN_CLASS_NAME
    #
    # 如果這個(gè)插件類有一些屬性值需要通過(guò)"setter"方法設(shè)定, 名稱和值的屬性定義如下:
    #
    # org.quartz.plugin.NAME.propName = propValue
    #
    # ..."propName" 在插件類中會(huì)有一個(gè)"setPropName"方法.但是只支持原始數(shù)據(jù)類型(包括 Strings)。
    #

      配置插件的簡(jiǎn)單示例:    

                        
    org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingTriggerHistoryPlugin
    org.quartz.plugin.triggHistory.triggerFiredMessage = Trigger {1}.{0} fired job {6}.{5} at: {4, date, HH:mm:ss MM/dd/yyyy}
    org.quartz.plugin.triggHistory.triggerCompleteMessage = Trigger {1}.{0} completed firing job {6}.{5} at {4, date, HH:mm:ss MM/dd/yyyy} with resulting trigger instruction code: {9}
    
    org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
    org.quartz.plugin.jobInitializer.fileName = data/my_job_data.xml
    org.quartz.plugin.jobInitializer.overWriteExistingJobs = false
    org.quartz.plugin.jobInitializer.failOnFileNotFound = true
    
    org.quartz.plugin.shutdownhook.class = org.quartz.plugins.management.ShutdownHookPlugin
    org.quartz.plugin.shutdownhook.cleanShutdown = true

      3.1.3 示例

                        
 #============================================================    # Configure Main Scheduler Properties    #===========================================================        org.quartz.scheduler.instanceName = MyClusteredScheduler    org.quartz.scheduler.instanceId = AUTO        #===========================================================    # Configure ThreadPool    #===========================================================        org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool    org.quartz.threadPool.threadCount = 25    org.quartz.threadPool.threadPriority = 5        #===========================================================    # Configure JobStore    #===========================================================        org.quartz.jobStore.misfireThreshold = 60000        org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX    org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate    org.quartz.jobStore.useProperties = false    org.quartz.jobStore.dataSource = myDS    org.quartz.jobStore.tablePrefix = QRTZ_        org.quartz.jobStore.isClustered = true    org.quartz.jobStore.clusterCheckinInterval = 20000        #===========================================================    # Configure Datasources    #===========================================================        org.quartz.dataSource.myDS.driver = oracle.jdbc.driver.OracleDriver    org.quartz.dataSource.myDS.URL = jdbc:oracle:thin:@cluster:1521:dev    org.quartz.dataSource.myDS.user = quartz    org.quartz.dataSource.myDS.password = quartz    org.quartz.dataSource.myDS.maxConnections = 5    org.quartz.dataSource.myDS.validationQuery=select 0 from dual



   
附件:創(chuàng)建數(shù)據(jù)庫(kù):
DROP TABLE IF EXISTS QRTZ_JOB_LISTENERS;DROP TABLE IF EXISTS QRTZ_TRIGGER_LISTENERS;DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS;DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS;DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE;DROP TABLE IF EXISTS QRTZ_LOCKS;DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS;DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS;DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS;DROP TABLE IF EXISTS QRTZ_TRIGGERS;DROP TABLE IF EXISTS QRTZ_JOB_DETAILS;DROP TABLE IF EXISTS QRTZ_CALENDARS;CREATE TABLE QRTZ_JOB_DETAILS(JOB_NAME VARCHAR(200) NOT NULL,JOB_GROUP VARCHAR(200) NOT NULL,DESCRIPTION VARCHAR(250) NULL,JOB_CLASS_NAME VARCHAR(250) NOT NULL,IS_DURABLE VARCHAR(1) NOT NULL,IS_VOLATILE VARCHAR(1) NOT NULL,IS_STATEFUL VARCHAR(1) NOT NULL,REQUESTS_RECOVERY VARCHAR(1) NOT NULL,JOB_DATA BLOB NULL,PRIMARY KEY (JOB_NAME,JOB_GROUP));CREATE TABLE QRTZ_JOB_LISTENERS(JOB_NAME VARCHAR(200) NOT NULL,JOB_GROUP VARCHAR(200) NOT NULL,JOB_LISTENER VARCHAR(200) NOT NULL,PRIMARY KEY (JOB_NAME,JOB_GROUP,JOB_LISTENER),FOREIGN KEY (JOB_NAME,JOB_GROUP)REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP));CREATE TABLE QRTZ_TRIGGERS(TRIGGER_NAME VARCHAR(200) NOT NULL,TRIGGER_GROUP VARCHAR(200) NOT NULL,JOB_NAME VARCHAR(200) NOT NULL,JOB_GROUP VARCHAR(200) NOT NULL,IS_VOLATILE VARCHAR(1) NOT NULL,DESCRIPTION VARCHAR(250) NULL,NEXT_FIRE_TIME BIGINT(13) NULL,PREV_FIRE_TIME BIGINT(13) NULL,PRIORITY INTEGER NULL,TRIGGER_STATE VARCHAR(16) NOT NULL,TRIGGER_TYPE VARCHAR(8) NOT NULL,START_TIME BIGINT(13) NOT NULL,END_TIME BIGINT(13) NULL,CALENDAR_NAME VARCHAR(200) NULL,MISFIRE_INSTR SMALLINT(2) NULL,JOB_DATA BLOB NULL,PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),FOREIGN KEY (JOB_NAME,JOB_GROUP)REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP));CREATE TABLE QRTZ_SIMPLE_TRIGGERS(TRIGGER_NAME VARCHAR(200) NOT NULL,TRIGGER_GROUP VARCHAR(200) NOT NULL,REPEAT_COUNT BIGINT(7) NOT NULL,REPEAT_INTERVAL BIGINT(12) NOT NULL,TIMES_TRIGGERED BIGINT(7) NOT NULL,PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP));CREATE TABLE QRTZ_CRON_TRIGGERS(TRIGGER_NAME VARCHAR(200) NOT NULL,TRIGGER_GROUP VARCHAR(200) NOT NULL,CRON_EXPRESSION VARCHAR(200) NOT NULL,TIME_ZONE_ID VARCHAR(80),PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP));CREATE TABLE QRTZ_BLOB_TRIGGERS(TRIGGER_NAME VARCHAR(200) NOT NULL,TRIGGER_GROUP VARCHAR(200) NOT NULL,BLOB_DATA BLOB NULL,PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP));CREATE TABLE QRTZ_TRIGGER_LISTENERS(TRIGGER_NAME VARCHAR(200) NOT NULL,TRIGGER_GROUP VARCHAR(200) NOT NULL,TRIGGER_LISTENER VARCHAR(200) NOT NULL,PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_LISTENER),FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP));CREATE TABLE QRTZ_CALENDARS(CALENDAR_NAME VARCHAR(200) NOT NULL,CALENDAR BLOB NOT NULL,PRIMARY KEY (CALENDAR_NAME));CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS(TRIGGER_GROUP VARCHAR(200) NOT NULL,PRIMARY KEY (TRIGGER_GROUP));CREATE TABLE QRTZ_FIRED_TRIGGERS(ENTRY_ID VARCHAR(95) NOT NULL,TRIGGER_NAME VARCHAR(200) NOT NULL,TRIGGER_GROUP VARCHAR(200) NOT NULL,IS_VOLATILE VARCHAR(1) NOT NULL,INSTANCE_NAME VARCHAR(200) NOT NULL,FIRED_TIME BIGINT(13) NOT NULL,PRIORITY INTEGER NOT NULL,STATE VARCHAR(16) NOT NULL,JOB_NAME VARCHAR(200) NULL,JOB_GROUP VARCHAR(200) NULL,IS_STATEFUL VARCHAR(1) NULL,REQUESTS_RECOVERY VARCHAR(1) NULL,PRIMARY KEY (ENTRY_ID));CREATE TABLE QRTZ_SCHEDULER_STATE(INSTANCE_NAME VARCHAR(200) NOT NULL,LAST_CHECKIN_TIME BIGINT(13) NOT NULL,CHECKIN_INTERVAL BIGINT(13) NOT NULL,PRIMARY KEY (INSTANCE_NAME));CREATE TABLE QRTZ_LOCKS(LOCK_NAME VARCHAR(40) NOT NULL,PRIMARY KEY (LOCK_NAME));INSERT INTO QRTZ_LOCKS values('TRIGGER_ACCESS');INSERT INTO QRTZ_LOCKS values('JOB_ACCESS');INSERT INTO QRTZ_LOCKS values('CALENDAR_ACCESS');INSERT INTO QRTZ_LOCKS values('STATE_ACCESS');INSERT INTO QRTZ_LOCKS values('MISFIRE_ACCESS');commit; 
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
spring Quartz配置
Spring整合實(shí)戰(zhàn)丨Quartz 集群配置
Quartz應(yīng)用與集群原理分析
quartz集群分布式(并發(fā))部署解決方案
SpringBoot2.1-quartz集成yml方式
spring+quartz集群
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服