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;