springboot 2.0.7支持quartz多节点分布式任务调度

springboot 2.0.7支持quartz多节点分布式任务调度,

每个节点不重复调度任务,节点故障停机,自动转移到其他节点任务;

pom.xml 配置spring-boot-starter-quartz:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>org.spiderflow</groupId>
	<artifactId>spider-flow</artifactId>
	<version>0.5.0</version>
	<packaging>pom</packaging>
	<name>spiderflow</name>
	<url>https://gitee.com/jmxd/spider-flow</url>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.7.RELEASE</version>
	</parent>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<spider-flow.version>${project.version}</spider-flow.version>
		<alibaba.fastjson.version>1.2.83</alibaba.fastjson.version>
		<alibaba.druid.version>1.1.16</alibaba.druid.version>
		<alibaba.transmittable.version>2.11.5</alibaba.transmittable.version>
		<mybatis.plus.version>3.1.0</mybatis.plus.version>
		<apache.commons.text.verion>1.6</apache.commons.text.verion>
		<apache.commons.csv.verion>1.8</apache.commons.csv.verion>
		<commons.io.version>2.7</commons.io.version>
		<guava.version>28.2-jre</guava.version>
		<jsoup.version>1.11.3</jsoup.version>
		<xsoup.version>0.3.1</xsoup.version>
	</properties>

	<dependencies>
		<!-- spring-boot相关配置 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
        <!--quartz定时任务配置-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-quartz</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-mail</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-websocket</artifactId>
		</dependency>
		<!-- 数据库相关 -->
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-boot-starter</artifactId>
			<version>${mybatis.plus.version}</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>8.0.18</version>
		</dependency>
		<!-- alibaba相关包 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>${alibaba.fastjson.version}</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid-spring-boot-starter</artifactId>
			<version>${alibaba.druid.version}</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>transmittable-thread-local</artifactId>
			<version>${alibaba.transmittable.version}</version>
		</dependency>
		<!-- apache commons相关 -->
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-text</artifactId>
			<version>${apache.commons.text.verion}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-csv</artifactId>
			<version>${apache.commons.csv.verion}</version>
		</dependency>
		<!-- commons包 -->
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>${commons.io.version}</version>
		</dependency>
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
		</dependency>
		<!-- 其它包 -->
		<dependency>
			<groupId>com.google.guava</groupId>
			<artifactId>guava</artifactId>
			<version>${guava.version}</version>
		</dependency>
		<dependency>
			<groupId>org.jsoup</groupId>
			<artifactId>jsoup</artifactId>
			<version>${jsoup.version}</version>
		</dependency>
		<dependency>
			<groupId>us.codecraft</groupId>
			<artifactId>xsoup</artifactId>
			<version>${xsoup.version}</version>
		</dependency>
	</dependencies>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.spiderflow</groupId>
				<artifactId>spider-flow-api</artifactId>
				<version>${spider-flow.version}</version>
			</dependency>
			<dependency>
				<groupId>org.spiderflow</groupId>
				<artifactId>spider-flow-core</artifactId>
				<version>${spider-flow.version}</version>
			</dependency>
			<dependency>
				<groupId>org.spiderflow</groupId>
				<artifactId>spider-flow-selenium</artifactId>
				<version>${spider-flow.version}</version>
			</dependency>
			<dependency>
				<groupId>org.spiderflow</groupId>
				<artifactId>spider-flow-proxypool</artifactId>
				<version>${spider-flow.version}</version>
			</dependency>
			<dependency>
				<groupId>org.spiderflow</groupId>
				<artifactId>spider-flow-mongodb</artifactId>
				<version>${spider-flow.version}</version>
			</dependency>
			<dependency>
				<groupId>org.spiderflow</groupId>
				<artifactId>spider-flow-redis</artifactId>
				<version>${spider-flow.version}</version>
			</dependency>
			<dependency>
				<groupId>org.spiderflow</groupId>
				<artifactId>spider-flow-ocr</artifactId>
				<version>${spider-flow.version}</version>
			</dependency>
			<dependency>
				<groupId>org.spiderflow</groupId>
				<artifactId>spider-flow-oss</artifactId>
				<version>${spider-flow.version}</version>
			</dependency>
			<dependency>
				<groupId>org.spiderflow</groupId>
				<artifactId>spider-flow-mailbox</artifactId>
				<version>${spider-flow.version}</version>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<modules>
		<module>spider-flow-api</module>
		<module>spider-flow-core</module>
		<module>spider-flow-web</module>
	</modules>
</project>

application.yml配置quartz

logging:
    level:
        root: INFO
selenium:
    driver:
        chrome: E:/driver/chromedriver.exe
        firefox: E:/driver/geckodriver.exe
spider:
    bloomfilter:
        capacity: 1000000
        error-rate: 0.0001
    job:
        enable: true
    notice:
        content:
            end: 流程结束执行:{name},结束时间:{currentDate}
            exception: 流程发生异常:{name},异常时间:{currentDate}
            start: 流程开始执行:{name},开始时间:{currentDate}
        subject: 采集平台流程通知
    thread:
        default: 8
        max: 64
    detect:
        dead-cycle: 5000
    workspace: /data/spider
spring:
    autoconfigure:
        exclude: org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration,org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration
    datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        password: 1234
        url: jdbc:mysql://rm-uf6c2o6h7hg0rw69iw1o.mysql.rds.aliyuncs.com:3306/spiderflow?useSSL=false&useUnicode=true&characterEncoding=UTF8&autoReconnect=true&serverTimezone=UTC
        username: realize
    #quartz相关属性配置
    quartz:
        properties:
            org:
                quartz:
                    scheduler:
                        instanceName: clusteredScheduler
                        instanceId: AUTO
                    jobStore:
                        class: org.quartz.impl.jdbcjobstore.JobStoreTX
                        driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
                        tablePrefix: qrtz_
                        #quartz支持多节点集群开启                     
                        isClustered: true
                        clusterCheckinInterval: 10000
                        useProperties: false
                    threadPool:
                        class: org.quartz.simpl.SimpleThreadPool
                        threadCount: 10
                        threadPriority: 5
                        threadsInheritContextClassLoaderOfInitializingThread: true
        #quartz支持多节点数据库存储方式
        job-store-type: jdbc
    jackson:
        date-format: yyyy-MM-dd HH:mm:ss
        serialization:
            fail_on_empty_beans: false
        time-zone: GMT+8
    mail:
        default-encoding: UTF-8
        host: smtp.qq.com
        password: kymsyfdewmsjbadguu
        port: 465
        properties:
            mail:
                smtp:
                    auth: true
                    socketFactory:
                        class: javax.net.ssl.SSLSocketFactory
                        fallback: false
                        port: 465
                    starttls:
                        enable: true
                        required: true
        protocol: smtp
        username: 110220368@qq.com
    mvc:
        favicon:
            enabled: false
quartz依赖12张表脚本:


SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for qrtz_blob_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_blob_triggers`;
CREATE TABLE `qrtz_blob_triggers`  (
  `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `TRIGGER_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `BLOB_DATA` blob NULL,
  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
  INDEX `SCHED_NAME`(`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
  CONSTRAINT `qrtz_blob_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of qrtz_blob_triggers
-- ----------------------------

-- ----------------------------
-- Table structure for qrtz_calendars
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_calendars`;
CREATE TABLE `qrtz_calendars`  (
  `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `CALENDAR_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `CALENDAR` blob NOT NULL,
  PRIMARY KEY (`SCHED_NAME`, `CALENDAR_NAME`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of qrtz_calendars
-- ----------------------------

-- ----------------------------
-- Table structure for qrtz_cron_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_cron_triggers`;
CREATE TABLE `qrtz_cron_triggers`  (
  `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `TRIGGER_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `CRON_EXPRESSION` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `TIME_ZONE_ID` varchar(80) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
  CONSTRAINT `qrtz_cron_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of qrtz_cron_triggers
-- ----------------------------
INSERT INTO `qrtz_cron_triggers` VALUES ('quartzScheduler', 'SPIDER_TASK_f0a67f17ee1a498a9b2f4ca30556f3c3', 'DEFAULT', '0 0/2 * * * ? ', 'Asia/Shanghai');

-- ----------------------------
-- Table structure for qrtz_fired_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_fired_triggers`;
CREATE TABLE `qrtz_fired_triggers`  (
  `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `ENTRY_ID` varchar(95) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `TRIGGER_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `INSTANCE_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `FIRED_TIME` bigint NOT NULL,
  `SCHED_TIME` bigint NOT NULL,
  `PRIORITY` int NOT NULL,
  `STATE` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `JOB_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `JOB_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`SCHED_NAME`, `ENTRY_ID`) USING BTREE,
  INDEX `IDX_QRTZ_FT_TRIG_INST_NAME`(`SCHED_NAME`, `INSTANCE_NAME`) USING BTREE,
  INDEX `IDX_QRTZ_FT_INST_JOB_REQ_RCVRY`(`SCHED_NAME`, `INSTANCE_NAME`, `REQUESTS_RECOVERY`) USING BTREE,
  INDEX `IDX_QRTZ_FT_J_G`(`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE,
  INDEX `IDX_QRTZ_FT_JG`(`SCHED_NAME`, `JOB_GROUP`) USING BTREE,
  INDEX `IDX_QRTZ_FT_T_G`(`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
  INDEX `IDX_QRTZ_FT_TG`(`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of qrtz_fired_triggers
-- ----------------------------

-- ----------------------------
-- Table structure for qrtz_job_details
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_job_details`;
CREATE TABLE `qrtz_job_details`  (
  `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `JOB_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `JOB_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `DESCRIPTION` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `JOB_CLASS_NAME` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `IS_DURABLE` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `IS_UPDATE_DATA` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `JOB_DATA` blob NULL,
  PRIMARY KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE,
  INDEX `IDX_QRTZ_J_REQ_RECOVERY`(`SCHED_NAME`, `REQUESTS_RECOVERY`) USING BTREE,
  INDEX `IDX_QRTZ_J_GRP`(`SCHED_NAME`, `JOB_GROUP`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of qrtz_job_details
-- ----------------------------
INSERT INTO `qrtz_job_details` VALUES ('quartzScheduler', 'SPIDER_TASK_f0a67f17ee1a498a9b2f4ca30556f3c3', 'DEFAULT', NULL, 'org.spiderflow.core.job.SpiderJob', '0', '0', '0', '0', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000B5350494445525F464C4F57737200246F72672E737069646572666C6F772E636F72652E6D6F64656C2E537069646572466C6F77EFF1C1430DBD7C5602000A4C000A637265617465446174657400104C6A6176612F7574696C2F446174653B4C000463726F6E7400124C6A6176612F6C616E672F537472696E673B4C0007656E61626C656471007E000A4C000C65786563757465436F756E747400134C6A6176612F6C616E672F496E74656765723B4C0002696471007E000A4C000F6C6173744578656375746554696D6571007E00094C00046E616D6571007E000A4C000F6E6578744578656375746554696D6571007E00094C000772756E6E696E6771007E000B4C0003786D6C71007E000A78707372000E6A6176612E7574696C2E44617465686A81014B597419030000787077080000016CB995DC707874000E3020302F32202A202A202A203F2074000130737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000006574002066306136376631376565316134393861396232663463613330353536663363337371007E000D77080000018754EBEB0078740012E68A93E58F96E6AF8FE697A5E88F9CE4BBB77070740F8A3C6D7847726170684D6F64656C3E0A20203C726F6F743E0A202020203C6D7843656C6C2069643D2230223E0A2020202020203C4A736F6E50726F70657274792061733D2264617461223E0A20202020202020207B2671756F743B7370696465724E616D652671756F743B3A2671756F743BE68A93E58F96E6AF8FE697A5E88F9CE4BBB72671756F743B2C2671756F743B7375626D69742D73747261746567792671756F743B3A2671756F743B72616E646F6D2671756F743B2C2671756F743B746872656164436F756E742671756F743B3A2671756F743B2671756F743B7D0A2020202020203C2F4A736F6E50726F70657274793E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D22312220706172656E743D2230222F3E0A202020203C6D7843656C6C2069643D2232222076616C75653D22E5BC80E5A78B22207374796C653D2273746172742220706172656E743D223122207665727465783D2231223E0A2020202020203C6D7847656F6D6574727920783D2238302220793D223830222077696474683D22323422206865696768743D223234222061733D2267656F6D65747279222F3E0A2020202020203C4A736F6E50726F70657274792061733D2264617461223E0A20202020202020207B2671756F743B73686170652671756F743B3A2671756F743B73746172742671756F743B7D0A2020202020203C2F4A736F6E50726F70657274793E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D2233222076616C75653D22E5BC80E5A78BE68A93E58F9622207374796C653D22726571756573742220706172656E743D223122207665727465783D2231223E0A2020202020203C6D7847656F6D6574727920783D223231392E38333333343335303538353933382220793D223830222077696474683D22323422206865696768743D223234222061733D2267656F6D65747279222F3E0A2020202020203C4A736F6E50726F70657274792061733D2264617461223E0A20202020202020207B2671756F743B76616C75652671756F743B3A2671756F743BE5BC80E5A78BE68A93E58F962671756F743B2C2671756F743B6C6F6F705661726961626C654E616D652671756F743B3A2671756F743B2671756F743B2C2671756F743B6D6574686F642671756F743B3A2671756F743B4745542671756F743B2C2671756F743B736C6565702671756F743B3A2671756F743B2671756F743B2C2671756F743B74696D656F75742671756F743B3A2671756F743B2671756F743B2C2671756F743B726573706F6E73652D636861727365742671756F743B3A2671756F743B2671756F743B2C2671756F743B7265747279436F756E742671756F743B3A2671756F743B2671756F743B2C2671756F743B7265747279496E74657276616C2671756F743B3A2671756F743B2671756F743B2C2671756F743B626F64792D747970652671756F743B3A2671756F743B6E6F6E652671756F743B2C2671756F743B626F64792D636F6E74656E742D747970652671756F743B3A2671756F743B746578742F706C61696E2671756F743B2C2671756F743B6C6F6F70436F756E742671756F743B3A2671756F743B2671756F743B2C2671756F743B75726C2671756F743B3A2671756F743B687474703A2F2F7777772E6265696A696E6770726963652E636E3A383038362F70726963652F7072696365546F6461792F506167654C6F61642F4C6F616450726963653F6A736F6E63616C6C6261636B3D312671756F743B2C2671756F743B70726F78792671756F743B3A2671756F743B2671756F743B2C2671756F743B726571756573742D626F64792671756F743B3A2671756F743B2671756F743B2C2671756F743B666F6C6C6F772D72656469726563742671756F743B3A2671756F743B312671756F743B2C2671756F743B746C732D76616C69646174652671756F743B3A2671756F743B312671756F743B2C2671756F743B636F6F6B69652D6175746F2D7365742671756F743B3A2671756F743B312671756F743B2C2671756F743B7265706561742D656E61626C652671756F743B3A2671756F743B302671756F743B2C2671756F743B73686170652671756F743B3A2671756F743B726571756573742671756F743B7D0A2020202020203C2F4A736F6E50726F70657274793E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D2234222076616C75653D222220706172656E743D22312220736F757263653D223222207461726765743D22332220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A2020202020203C4A736F6E50726F70657274792061733D2264617461223E0A20202020202020207B2671756F743B76616C75652671756F743B3A2671756F743B2671756F743B2C2671756F743B636F6E646974696F6E2671756F743B3A2671756F743B2671756F743B7D0A2020202020203C2F4A736F6E50726F70657274793E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D2235222076616C75653D22E8A7A3E69E904A534F4E22207374796C653D227661726961626C652220706172656E743D223122207665727465783D2231223E0A2020202020203C6D7847656F6D6574727920783D223335302220793D223830222077696474683D22323422206865696768743D223234222061733D2267656F6D65747279222F3E0A2020202020203C4A736F6E50726F70657274792061733D2264617461223E0A20202020202020207B2671756F743B76616C75652671756F743B3A2671756F743BE8A7A3E69E904A534F4E2671756F743B2C2671756F743B6C6F6F705661726961626C654E616D652671756F743B3A2671756F743B2671756F743B2C2671756F743B7661726961626C652D6E616D652671756F743B3A5B2671756F743B6A736F6E7374722671756F743B2C2671756F743B6A736F6E646174612671756F743B2C2671756F743B646174612671756F743B5D2C2671756F743B7661726961626C652D6465736372697074696F6E2671756F743B3A5B2671756F743B2671756F743B2C2671756F743B2671756F743B2C2671756F743B2671756F743B5D2C2671756F743B6C6F6F70436F756E742671756F743B3A2671756F743B2671756F743B2C2671756F743B7661726961626C652D76616C75652671756F743B3A5B2671756F743B247B737472696E672E737562737472696E6728726573702E68746D6C2C322C726573702E68746D6C2E6C656E67746828292D31297D2671756F743B2C2671756F743B247B6A736F6E2E7061727365286A736F6E737472297D2671756F743B2C2671756F743B247B657874726163742E6A736F6E70617468286A736F6E646174615B315D2C262333393B64617461262333393B297D2671756F743B5D2C2671756F743B73686170652671756F743B3A2671756F743B7661726961626C652671756F743B7D0A2020202020203C2F4A736F6E50726F70657274793E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D2236222076616C75653D222220706172656E743D22312220736F757263653D223322207461726765743D22352220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A2020202020203C4A736F6E50726F70657274792061733D2264617461223E0A20202020202020207B2671756F743B76616C75652671756F743B3A2671756F743B2671756F743B2C2671756F743B636F6E646974696F6E2671756F743B3A2671756F743B2671756F743B7D0A2020202020203C2F4A736F6E50726F70657274793E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D2237222076616C75653D22E8BE93E587BA22207374796C653D226F75747075742220706172656E743D223122207665727465783D2231223E0A2020202020203C6D7847656F6D6574727920783D223438302E31363636383730313137313837352220793D223830222077696474683D22323422206865696768743D223234222061733D2267656F6D65747279222F3E0A2020202020203C4A736F6E50726F70657274792061733D2264617461223E0A20202020202020207B2671756F743B76616C75652671756F743B3A2671756F743BE8BE93E587BA2671756F743B2C2671756F743B6C6F6F705661726961626C654E616D652671756F743B3A2671756F743B692671756F743B2C2671756F743B7461626C654E616D652671756F743B3A2671756F743B2671756F743B2C2671756F743B6373764E616D652671756F743B3A2671756F743B2671756F743B2C2671756F743B637376456E636F64696E672671756F743B3A2671756F743B47424B2671756F743B2C2671756F743B6F75747075742D6E616D652671756F743B3A5B2671756F743BE88F9CE5908D2671756F743B2C2671756F743BE88F9CE4BBB72671756F743B2C2671756F743BE58D95E4BD8D2671756F743B5D2C2671756F743B6C6F6F70436F756E742671756F743B3A2671756F743B247B6C6973742E6C656E6774682864617461297D2671756F743B2C2671756F743B6F75747075742D76616C75652671756F743B3A5B2671756F743B247B646174615B695D2E4974656D4E616D657D2671756F743B2C2671756F743B247B646174615B695D2E507269636530347D2671756F743B2C2671756F743B247B646174615B695D2E4974656D556E69747D2671756F743B5D2C2671756F743B6F75747075742D616C6C2671756F743B3A2671756F743B302671756F743B2C2671756F743B6F75747075742D64617461626173652671756F743B3A2671756F743B302671756F743B2C2671756F743B6F75747075742D6373762671756F743B3A2671756F743B302671756F743B2C2671756F743B73686170652671756F743B3A2671756F743B6F75747075742671756F743B7D0A2020202020203C2F4A736F6E50726F70657274793E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D2238222076616C75653D222220706172656E743D22312220736F757263653D223522207461726765743D22372220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A2020202020203C4A736F6E50726F70657274792061733D2264617461223E0A20202020202020207B2671756F743B76616C75652671756F743B3A2671756F743B2671756F743B2C2671756F743B636F6E646974696F6E2671756F743B3A2671756F743B2671756F743B7D0A2020202020203C2F4A736F6E50726F70657274793E0A202020203C2F6D7843656C6C3E0A20203C2F726F6F743E0A3C2F6D7847726170684D6F64656C3E0A7800);

-- ----------------------------
-- Table structure for qrtz_locks
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_locks`;
CREATE TABLE `qrtz_locks`  (
  `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `LOCK_NAME` varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`SCHED_NAME`, `LOCK_NAME`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of qrtz_locks
-- ----------------------------
INSERT INTO `qrtz_locks` VALUES ('quartzScheduler', 'STATE_ACCESS');
INSERT INTO `qrtz_locks` VALUES ('quartzScheduler', 'TRIGGER_ACCESS');

-- ----------------------------
-- Table structure for qrtz_paused_trigger_grps
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_paused_trigger_grps`;
CREATE TABLE `qrtz_paused_trigger_grps`  (
  `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of qrtz_paused_trigger_grps
-- ----------------------------

-- ----------------------------
-- Table structure for qrtz_scheduler_state
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_scheduler_state`;
CREATE TABLE `qrtz_scheduler_state`  (
  `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `INSTANCE_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `LAST_CHECKIN_TIME` bigint NOT NULL,
  `CHECKIN_INTERVAL` bigint NOT NULL,
  PRIMARY KEY (`SCHED_NAME`, `INSTANCE_NAME`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of qrtz_scheduler_state
-- ----------------------------
INSERT INTO `qrtz_scheduler_state` VALUES ('quartzScheduler', 'DESKTOP-78901680772590763', 1680772872525, 10000);

-- ----------------------------
-- Table structure for qrtz_simple_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_simple_triggers`;
CREATE TABLE `qrtz_simple_triggers`  (
  `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `TRIGGER_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `REPEAT_COUNT` bigint NOT NULL,
  `REPEAT_INTERVAL` bigint NOT NULL,
  `TIMES_TRIGGERED` bigint NOT NULL,
  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
  CONSTRAINT `qrtz_simple_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of qrtz_simple_triggers
-- ----------------------------

-- ----------------------------
-- Table structure for qrtz_simprop_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_simprop_triggers`;
CREATE TABLE `qrtz_simprop_triggers`  (
  `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `TRIGGER_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `STR_PROP_1` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `STR_PROP_2` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `STR_PROP_3` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `INT_PROP_1` int NULL DEFAULT NULL,
  `INT_PROP_2` int NULL DEFAULT NULL,
  `LONG_PROP_1` bigint NULL DEFAULT NULL,
  `LONG_PROP_2` bigint NULL DEFAULT NULL,
  `DEC_PROP_1` decimal(13, 4) NULL DEFAULT NULL,
  `DEC_PROP_2` decimal(13, 4) NULL DEFAULT NULL,
  `BOOL_PROP_1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `BOOL_PROP_2` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
  CONSTRAINT `qrtz_simprop_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of qrtz_simprop_triggers
-- ----------------------------

-- ----------------------------
-- Table structure for qrtz_task_history
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_task_history`;
CREATE TABLE `qrtz_task_history`  (
  `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `INSTANCE_ID` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `FIRE_ID` varchar(95) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `TASK_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `TASK_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `FIRED_TIME` bigint NULL DEFAULT NULL,
  `FIRED_WAY` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `COMPLETE_TIME` bigint NULL DEFAULT NULL,
  `EXPEND_TIME` bigint NULL DEFAULT NULL,
  `REFIRED` int NULL DEFAULT NULL,
  `EXEC_STATE` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `LOG` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL,
  PRIMARY KEY (`FIRE_ID`) USING BTREE,
  INDEX `IDX_QRTZ_TK_S`(`SCHED_NAME`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of qrtz_task_history
-- ----------------------------

-- ----------------------------
-- Table structure for qrtz_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_triggers`;
CREATE TABLE `qrtz_triggers`  (
  `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `TRIGGER_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `JOB_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `JOB_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `DESCRIPTION` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `NEXT_FIRE_TIME` bigint NULL DEFAULT NULL,
  `PREV_FIRE_TIME` bigint NULL DEFAULT NULL,
  `PRIORITY` int NULL DEFAULT NULL,
  `TRIGGER_STATE` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `TRIGGER_TYPE` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `START_TIME` bigint NOT NULL,
  `END_TIME` bigint NULL DEFAULT NULL,
  `CALENDAR_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `MISFIRE_INSTR` smallint NULL DEFAULT NULL,
  `JOB_DATA` blob NULL,
  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
  INDEX `IDX_QRTZ_T_J`(`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE,
  INDEX `IDX_QRTZ_T_JG`(`SCHED_NAME`, `JOB_GROUP`) USING BTREE,
  INDEX `IDX_QRTZ_T_C`(`SCHED_NAME`, `CALENDAR_NAME`) USING BTREE,
  INDEX `IDX_QRTZ_T_G`(`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE,
  INDEX `IDX_QRTZ_T_STATE`(`SCHED_NAME`, `TRIGGER_STATE`) USING BTREE,
  INDEX `IDX_QRTZ_T_N_STATE`(`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`, `TRIGGER_STATE`) USING BTREE,
  INDEX `IDX_QRTZ_T_N_G_STATE`(`SCHED_NAME`, `TRIGGER_GROUP`, `TRIGGER_STATE`) USING BTREE,
  INDEX `IDX_QRTZ_T_NEXT_FIRE_TIME`(`SCHED_NAME`, `NEXT_FIRE_TIME`) USING BTREE,
  INDEX `IDX_QRTZ_T_NFT_ST`(`SCHED_NAME`, `TRIGGER_STATE`, `NEXT_FIRE_TIME`) USING BTREE,
  INDEX `IDX_QRTZ_T_NFT_MISFIRE`(`SCHED_NAME`, `MISFIRE_INSTR`, `NEXT_FIRE_TIME`) USING BTREE,
  INDEX `IDX_QRTZ_T_NFT_ST_MISFIRE`(`SCHED_NAME`, `MISFIRE_INSTR`, `NEXT_FIRE_TIME`, `TRIGGER_STATE`) USING BTREE,
  INDEX `IDX_QRTZ_T_NFT_ST_MISFIRE_GRP`(`SCHED_NAME`, `MISFIRE_INSTR`, `NEXT_FIRE_TIME`, `TRIGGER_GROUP`, `TRIGGER_STATE`) USING BTREE,
  CONSTRAINT `qrtz_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) REFERENCES `qrtz_job_details` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of qrtz_triggers
-- ----------------------------
INSERT INTO `qrtz_triggers` VALUES ('quartzScheduler', 'SPIDER_TASK_f0a67f17ee1a498a9b2f4ca30556f3c3', 'DEFAULT', 'SPIDER_TASK_f0a67f17ee1a498a9b2f4ca30556f3c3', 'DEFAULT', NULL, 1680772920000, 1680772800000, 5, 'WAITING', 'CRON', 1680772783000, 0, NULL, 2, '');

SET FOREIGN_KEY_CHECKS = 1;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Customization Tool v2.0.7是一款用于个性化定制的工具。它具有简单易用的界面和丰富的功能,可以帮助用户根据个人需求定制各种软件、网页、应用程序等。 首先,Customization Tool v2.0.7提供了丰富的定制选项。用户可以根据自己的喜好选择不同的颜色主题、字体样式、图标等元素,并进行自由组合。同时,还可以自定义各种按钮、菜单、页面布局等,以实现个性化的界面设计。 其次,Customization Tool v2.0.7还支持多语言定制。用户可以在工具中选择需要定制的语言,在文本、标签和提示信息等方面进行翻译和修改。这使得用户可以根据本地化需求,对软件进行本地化定制,进而提升用户体验。 此外,Customization Tool v2.0.7还提供了高级功能,如插件扩展和数据导入导出等。通过插件扩展,用户可以根据需要安装各种功能性插件,增强工具的定制能力。而数据导入导出功能则方便用户在不同设备间进行定制配置的迁移,节省了重新定制的时间和努力。 总之,Customization Tool v2.0.7是一款功能强大、灵活易用的定制工具。它帮助用户根据个人需求定制各种软件界面和功能,使用户能够更好地适应和享受自己定制的产品。无论是个人用户还是企业开发者,都能从该工具中获得定制化的优势。 ### 回答2: customizationtool v2.0.7是一个定制化工具的版本号,它可能是一个软件或应用程序的升级版本。该工具的主要目的是为用户提供定制化的功能和选项来满足其特定的需求和偏好。 customizationtool v2.0.7可能具有以下特点和功能: 1. 用户界面改进:该工具可能会提供一个简洁、直观和易于操作的用户界面,以便用户能够轻松地进行各种定制设置。 2. 主题和布局:工具可能提供多种主题和布局样式供用户选择,以改变软件或应用程序的外观和布局。 3. 颜色和图标:用户可以使用该工具来更改软件或应用程序中的颜色方案和图标,以使其更符合个人喜好。 4. 字体和文字设置:用户可以选择不同的字体和文字样式,以改变软件或应用程序中的字体类型、大小和颜色。 5. 功能定制:用户可以根据自己的需要选择特定的功能和选项,以满足个性化的使用需求。 6. 插件和扩展:工具可能支持插件和扩展,允许用户添加额外的功能和特性以满足个人化需求。 7. 存储和导出设置:用户可以保存他们的定制设置,并在需要时导出或导入这些设置,以便在不同的设备或环境中使用。 通过customizationtool v2.0.7,用户能够充分发挥自己的创造力和个性,定制软件或应用程序以更好地适应自己的需求和喜好。这样的工具使用户能够获得独特的使用体验,提高工作和生活效率。 ### 回答3: 定制化工具v2.0.7是一种用于个性化定制产品的软件工具。它提供了一系列功能和选项,使用户能够根据自己的需求和喜好来定制和设计产品。 首先,定制化工具v2.0.7具有用户友好的界面,使用户能够轻松地使用这个工具。用户可以通过简单的拖放、点击和选择来完成产品的定制。无需深入了解技术知识,即可操作工具完成定制化过程。 其次,这个工具提供了广泛的定制选项。用户可以根据自己的要求选择不同的颜色、尺寸、形状和材料等。例如,如果用户想要定制一款手机壳,他们可以选择所喜欢的颜色、图案和材质,以及加入自己的个性化文字或图片。 此外,定制化工具v2.0.7还具备与用户需求一致的灵活性。用户可以根据产品类型和定制要求进行自由组合。无论是定制衣物、家具、礼品还是其他产品,用户都可以通过这个工具来满足他们的特殊需求。 最后,定制化工具v2.0.7还提供了实时预览功能,使用户可以在定制过程中立即查看他们的设计效果。这有助于用户更好地掌握产品的外观和细节,并在必要时进行调整和修改。 总之,定制化工具v2.0.7是一个强大而灵活的软件工具,可以帮助用户轻松地实现个性化定制产品的愿望。无论是消费者还是商家,都可以受益于这个工具,为他们的产品增加独特性,并提供更好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值