elasticjob的入门maven项目搭建
一、项目所需工具
1、zookepper:版本需要3.6.0 以上版本
二、项目搭建
1、首先新建一个maven项目,引入对应的elasticjob包,pom配置如下
-
-
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
-
<modelVersion>4.0.0</modelVersion>
-
<parent>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-starter-parent</artifactId>
-
<version>2.7.3</version>
-
<relativePath/> <!-- lookup parent from repository -->
-
</parent>
-
<groupId>com.example</groupId>
-
<artifactId>myjob</artifactId>
-
<version>0.0.1-SNAPSHOT</version>
-
<name>myjob</name>
-
<description>Demo project for elasticJob</description>
-
<properties>
-
<java.version>1.8</java.version>
-
</properties>
-
<dependencies>
-
<dependency>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-starter-actuator</artifactId>
-
</dependency>
-
<dependency>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-starter-web</artifactId>
-
</dependency>
-
-
<dependency>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-starter-test</artifactId>
-
<scope>test</scope>
-
</dependency>
-
-
<dependency>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-starter-jdbc</artifactId>
-
</dependency>
-
<!-- MySQL 连接驱动依赖 -->
-
<dependency>
-
<groupId>mysql</groupId>
-
<artifactId>mysql-connector-java</artifactId>
-
</dependency>
-
-
<dependency>
-
<groupId>org.apache.shardingsphere.elasticjob</groupId>
-
<artifactId>elasticjob-lite-core</artifactId>
-
<version>3.0.1</version>
-
</dependency>
-
<dependency>
-
<groupId>org.apache.shardingsphere.elasticjob</groupId>
-
<artifactId>elasticjob-lite-spring-boot-starter</artifactId>
-
<version>3.0.1</version>
-
</dependency>
-
</dependencies>
-
-
<build>
-
<plugins>
-
<plugin>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-maven-plugin</artifactId>
-
</plugin>
-
</plugins>
-
</build>
-
-
</project>
2、新建一个自己的自定义Job类,实现SimpleJob(elasticjob的接口)接口
-
package com.example.myjob;
-
-
import org.apache.shardingsphere.elasticjob.api.ShardingContext;
-
import org.apache.shardingsphere.elasticjob.simple.job.SimpleJob;
-
import org.slf4j.Logger;
-
import org.slf4j.LoggerFactory;
-
import org.springframework.stereotype.Component;
-
-
-
/**
-
* 类功能说明
-
*
-
* @author venlenter
-
* @date 2022/8/31 11:35
-
*/
-
-
public class MyElasticJob implements SimpleJob {
-
private final Logger logger = LoggerFactory.getLogger(MyElasticJob.class);
-
-
-
public void execute(ShardingContext shardingContext) {
-
logger.info("MyElasticJob start, shardingItem:" shardingContext.getShardingItem());
-
-
}
-
}
3、配置下application.properties
-
#elasticjob注册中心配置 本地zookepper地址
-
elasticjob.reg-center.server-lists=localhost:2181
-
#是否启用job(true生效,false不生效)
-
elasticjob.enabled=true
-
-
#elasticJob配置 配置为数据库作为日志记录
-
elasticjob.tracing.type=RDB
-
elasticjob.reg-center.namespace=my-elastic-job
-
-
#配置项为 elasticjob.jobs.[自定义job名].elasticJobClass
-
elasticjob.jobs.myElasticJob.elasticJobClass=com.example.myjob.MyElasticJob
-
elasticjob.jobs.myElasticJob.cron=0/5 * * * * ?
-
elasticjob.jobs.myElasticJob.overwrite=true
-
elasticjob.jobs.myElasticJob.shardingTotalCount=1
-
-
#数据库配置
-
spring.datasource.url=jdbc:mysql://111.222.333.444:3306/job_db?useUnicode=true&useSSL=false&characterEncoding=utf8&allowMultiQueries=true
-
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
-
spring.datasource.username=xxx
-
spring.datasource.password=yyyy
数据库需要提前初始化,新建2张表,用于elasticjob请求存储,如果不需要用到请求日志存储,也可以把屏蔽掉elasticjob.tracing.type=RDB这个配置。
所需的2张表建表语句如下
-
CREATE TABLE `job_execution_log` (
-
`auto_id` int(11) NOT NULL AUTO_INCREMENT,
-
`id` varchar(40) NOT NULL,
-
`job_name` varchar(100) NOT NULL,
-
`task_id` varchar(255) NOT NULL,
-
`hostname` varchar(255) NOT NULL,
-
`ip` varchar(50) NOT NULL,
-
`sharding_item` int(11) NOT NULL,
-
`execution_source` varchar(20) NOT NULL,
-
`failure_cause` varchar(4000) DEFAULT NULL,
-
`is_success` int(11) NOT NULL,
-
`start_time` timestamp NULL DEFAULT NULL,
-
`complete_time` timestamp NULL DEFAULT NULL,
-
PRIMARY KEY (`auto_id`),
-
UNIQUE KEY `id` (`id`)
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
-
-
CREATE TABLE `job_status_trace_log` (
-
`auto_id` int(11) NOT NULL AUTO_INCREMENT,
-
`id` varchar(40) NOT NULL,
-
`job_name` varchar(100) NOT NULL,
-
`original_task_id` varchar(255) NOT NULL,
-
`task_id` varchar(255) NOT NULL,
-
`slave_id` varchar(50) NOT NULL,
-
`source` varchar(50) NOT NULL,
-
`execution_type` varchar(20) NOT NULL,
-
`sharding_item` varchar(100) NOT NULL,
-
`state` varchar(20) NOT NULL,
-
`message` varchar(4000) DEFAULT NULL,
-
`creation_time` timestamp NULL DEFAULT NULL,
-
PRIMARY KEY (`auto_id`),
-
KEY `TASK_ID_STATE_INDEX` (`task_id`(128),`state`)
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8
4、启动本地zk,再启动上述的maven项目application。然后就可以看到elasticjob不断定时触发执行了
-
. ____ _ __ _ _
-
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
-
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
-
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
-
' |____| .__|_| |_|_| |_\__, | / / / /
-
=========|_|==============|___/=/_/_/_/
-
:: Spring Boot :: (v2.7.3)
-
-
2022-09-01 10:20:20.881 INFO 32316 --- [ main] com.example.myjob.MyjobApplication : Starting MyjobApplication using Java 1.8.0_172 on DESKTOP-U45JULJ with PID 32316 (E:\myWorkspace\myjob\target\classes started by Administrator in E:\myWorkspace\myjob)
-
2022-09-01 10:20:20.884 INFO 32316 --- [ main] com.example.myjob.MyjobApplication : No active profile set, falling back to 1 default profile: "default"
-
2022-09-01 10:20:22.034 INFO 32316 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
-
2022-09-01 10:20:22.035 INFO 32316 --- [ main] o.a.catalina.core.AprLifecycleListener : An older version [1.2.25] of the Apache Tomcat Native library is installed, while Tomcat recommends a minimum version of [1.2.30]
-
2022-09-01 10:20:22.035 INFO 32316 --- [ main] o.a.catalina.core.AprLifecycleListener : Loaded Apache Tomcat Native library [1.2.25] using APR version [1.7.0].
-
2022-09-01 10:20:22.035 INFO 32316 --- [ main] o.a.catalina.core.AprLifecycleListener : APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [false].
-
2022-09-01 10:20:22.035 INFO 32316 --- [ main] o.a.catalina.core.AprLifecycleListener : APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
-
2022-09-01 10:20:22.038 INFO 32316 --- [ main] o.a.catalina.core.AprLifecycleListener : OpenSSL successfully initialized [OpenSSL 1.1.1g 21 Apr 2020]
-
2022-09-01 10:20:22.048 INFO 32316 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
-
2022-09-01 10:20:22.049 INFO 32316 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.65]
-
2022-09-01 10:20:22.267 INFO 32316 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
-
2022-09-01 10:20:22.267 INFO 32316 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1323 ms
-
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
-
2022-09-01 10:20:22.734 INFO 32316 --- [ main] o.a.c.f.imps.CuratorFrameworkImpl : Starting
-
2022-09-01 10:20:31.750 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:zookeeper.version=3.6.0--b4c89dc7f6083829e18fae6e446907ae0b1f22d7, built on 02/25/2020 14:38 GMT
-
2022-09-01 10:20:31.750 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:host.name=DESKTOP-U45JULJ
-
2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:java.version=1.8.0_172
-
2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:java.vendor=Oracle Corporation
-
2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:java.home=C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre
-
2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:java.class.path=C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\lib\rt.jar;E:\myWorkspace\myjob\target\classes;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-actuator\2.7.3\spring-boot-starter-actuator-2.7.3.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter\2.7.3\spring-boot-starter-2.7.3.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot\2.7.3\spring-boot-2.7.3.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.7.3\spring-boot-autoconfigure-2.7.3.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.7.3\spring-boot-starter-logging-2.7.3.jar;C:\Users\Administrator\.m2\repository\ch\qos\logback\logback-classic\1.2.11\logback-classic-1.2.11.jar;C:\Users\Administrator\.m2\repository\ch\qos\logback\logback-core\1.2.11\logback-core-1.2.11.jar;C:\Users\Administrator\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.17.2\log4j-to-slf4j-2.17.2.jar;C:\Users\Administrator\.m2\repository\org\apache\logging\log4j\log4j-api\2.17.2\log4j-api-2.17.2.jar;C:\Users\Administrator\.m2\repository\org\slf4j\jul-to-slf4j\1.7.36\jul-to-slf4j-1.7.36.jar;C:\Users\Administrator\.m2\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-actuator-autoconfigure\2.7.3\spring-boot-actuator-autoconfigure-2.7.3.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-actuator\2.7.3\spring-boot-actuator-2.7.3.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.13.3\jackson-databind-2.13.3.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.13.3\jackson-annotations-2.13.3.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.13.3\jackson-core-2.13.3.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.13.3\jackson-datatype-jsr310-2.13.3.jar;C:\Users\Administrator\.m2\repository\io\micrometer\micrometer-core\1.9.3\micrometer-core-1.9.3.jar;C:\Users\Administrator\.m2\repository\org\hdrhistogram\HdrHistogram\2.1.12\HdrHistogram-2.1.12.jar;C:\Users\Administrator\.m2\repository\org\latencyutils\LatencyUtils\2.0.3\LatencyUtils-2.0.3.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.7.3\spring-boot-starter-web-2.7.3.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.7.3\spring-boot-starter-json-2.7.3.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.13.3\jackson-datatype-jdk8-2.13.3.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.13.3\jackson-module-parameter-names-2.13.3.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.7.3\spring-boot-starter-tomcat-2.7.3.jar;C:\Users\Administrator\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.65\tomcat-embed-core-9.0.65.jar;C:\Users\Administrator\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.65\tomcat-embed-el-9.0.65.jar;C:\Users\Administrator\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.65\tomcat-embed-websocket-9.0.65.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-web\5.3.22\spring-web-5.3.22.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-beans\5.3.22\spring-beans-5.3.22.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-webmvc\5.3.22\spring-webmvc-5.3.22.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-aop\5.3.22\spring-aop-5.3.22.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-context\5.3.22\spring-context-5.3.22.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-expression\5.3.22\spring-expression-5.3.22.jar;C:\Users\Administrator\.m2\repository\org\slf4j\slf4j-api\1.7.36\slf4j-api-1.7.36.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-core\5.3.22\spring-core-5.3.22.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-jcl\5.3.22\spring-jcl-5.3.22.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.7.3\spring-boot-starter-jdbc-2.7.3.jar;C:\Users\Administrator\.m2\repository\com\zaxxer\HikariCP\4.0.3\HikariCP-4.0.3.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-jdbc\5.3.22\spring-jdbc-5.3.22.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-tx\5.3.22\spring-tx-5.3.22.jar;C:\Users\Administrator\.m2\repository\mysql\mysql-connector-java\8.0.30\mysql-connector-java-8.0.30.jar;C:\Users\Administrator\.m2\repository\org\apache\shardingsphere\elasticjob\elasticjob-lite-core\3.0.1\elasticjob-lite-core-3.0.1.jar;C:\Users\Administrator\.m2\repository\org\apache\shardingsphere\elasticjob\elasticjob-api\3.0.1\elasticjob-api-3.0.1.jar;C:\Users\Administrator\.m2\repository\com\谷歌\guava\guava\29.0-jre\guava-29.0-jre.jar;C:\Users\Administrator\.m2\repository\com\谷歌\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar;C:\Users\Administrator\.m2\repository\com\谷歌\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\Administrator\.m2\repository\com\谷歌\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\Users\Administrator\.m2\repository\org\checkerframework\checker-qual\2.11.1\checker-qual-2.11.1.jar;C:\Users\Administrator\.m2\repository\com\谷歌\errorprone\error_prone_annotations\2.3.4\error_prone_annotations-2.3.4.jar;C:\Users\Administrator\.m2\repository\org\apache\shardingsphere\elasticjob\elasticjob-infra-common\3.0.1\elasticjob-infra-common-3.0.1.jar;C:\Users\Administrator\.m2\repository\org\apache\shardingsphere\elasticjob\elasticjob-registry-center\3.0.1\elasticjob-registry-center-3.0.1.jar;C:\Users\Administrator\.m2\repository\org\apache\curator\curator-framework\5.1.0\curator-framework-5.1.0.jar;C:\Users\Administrator\.m2\repository\org\apache\curator\curator-client\5.1.0\curator-client-5.1.0.jar;C:\Users\Administrator\.m2\repository\org\apache\zookeeper\zookeeper\3.6.0\zookeeper-3.6.0.jar;C:\Users\Administrator\.m2\repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;C:\Users\Administrator\.m2\repository\org\apache\zookeeper\zookeeper-jute\3.6.0\zookeeper-jute-3.6.0.jar;C:\Users\Administrator\.m2\repository\org\apache\yetus\audience-annotations\0.5.0\audience-annotations-0.5.0.jar;C:\Users\Administrator\.m2\repository\io\netty\netty-handler\4.1.79.Final\netty-handler-4.1.79.Final.jar;C:\Users\Administrator\.m2\repository\io\netty\netty-common\4.1.79.Final\netty-common-4.1.79.Final.jar;C:\Users\Administrator\.m2\repository\io\netty\netty-resolver\4.1.79.Final\netty-resolver-4.1.79.Final.jar;C:\Users\Administrator\.m2\repository\io\netty\netty-buffer\4.1.79.Final\netty-buffer-4.1.79.Final.jar;C:\Users\Administrator\.m2\repository\io\netty\netty-transport\4.1.79.Final\netty-transport-4.1.79.Final.jar;C:\Users\Administrator\.m2\repository\io\netty\netty-transport-native-unix-common\4.1.79.Final\netty-transport-native-unix-common-4.1.79.Final.jar;C:\Users\Administrator\.m2\repository\io\netty\netty-codec\4.1.79.Final\netty-codec-4.1.79.Final.jar;C:\Users\Administrator\.m2\repository\io\netty\netty-transport-native-epoll\4.1.79.Final\netty-transport-native-epoll-4.1.79.Final.jar;C:\Users\Administrator\.m2\repository\io\netty\netty-transport-classes-epoll\4.1.79.Final\netty-transport-classes-epoll-4.1.79.Final.jar;C:\Users\Administrator\.m2\repository\log4j\log4j\1.2.17\log4j-1.2.17.jar;C:\Users\Administrator\.m2\repository\org\apache\curator\curator-recipes\5.1.0\curator-recipes-5.1.0.jar;C:\Users\Administrator\.m2\repository\org\apache\shardingsphere\elasticjob\elasticjob-simple-executor\3.0.1\elasticjob-simple-executor-3.0.1.jar;C:\Users\Administrator\.m2\repository\org\apache\shardingsphere\elasticjob\elasticjob-executor-kernel\3.0.1\elasticjob-executor-kernel-3.0.1.jar;C:\Users\Administrator\.m2\repository\org\apache\shardingsphere\elasticjob\elasticjob-error-handler-general\3.0.1\elasticjob-error-handler-general-3.0.1.jar;C:\Users\Administrator\.m2\repository\org\apache\shardingsphere\elasticjob\elasticjob-error-handler-spi\3.0.1\elasticjob-error-handler-spi-3.0.1.jar;C:\Users\Administrator\.m2\repository\org\apache\shardingsphere\elasticjob\elasticjob-dataflow-executor\3.0.1\elasticjob-dataflow-executor-3.0.1.jar;C:\Users\Administrator\.m2\repository\org\apache\shardingsphere\elasticjob\elasticjob-script-executor\3.0.1\elasticjob-script-executor-3.0.1.jar;C:\Users\Administrator\.m2\repository\org\apache\commons\commons-exec\1.3\commons-exec-1.3.jar;C:\Users\Administrator\.m2\repository\org\apache\shardingsphere\elasticjob\elasticjob-http-executor\3.0.1\elasticjob-http-executor-3.0.1.jar;C:\Users\Administrator\.m2\repository\org\apache\shardingsphere\elasticjob\elasticjob-tracing-rdb\3.0.1\elasticjob-tracing-rdb-3.0.1.jar;C:\Users\Administrator\.m2\repository\org\apache\shardingsphere\elasticjob\elasticjob-tracing-api\3.0.1\elasticjob-tracing-api-3.0.1.jar;C:\Users\Administrator\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-3.12.0.jar;C:\Users\Administrator\.m2\repository\org\yaml\snakeyaml\1.30\snakeyaml-1.30.jar;C:\Users\Administrator\.m2\repository\com\谷歌\code\gson\gson\2.9.1\gson-2.9.1.jar;C:\Users\Administrator\.m2\repository\org\quartz-scheduler\quartz\2.3.2\quartz-2.3.2.jar;C:\Users\Administrator\.m2\repository\com\mchange\mchange-commons-java\0.2.15\mchange-commons-java-0.2.15.jar;C:\Users\Administrator\.m2\repository\org\apache\shardingsphere\elasticjob\elasticjob-lite-spring-boot-starter\3.0.1\elasticjob-lite-spring-boot-starter-3.0.1.jar;C:\Users\Administrator\.m2\repository\org\apache\shardingsphere\elasticjob\elasticjob-lite-spring-core\3.0.1\elasticjob-lite-spring-core-3.0.1.jar;D:\DevelopSoftware\JetBrains\IntelliJ IDEA 2018.3.6\lib\idea_rt.jar
-
2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:java.library.path=C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;D:\DevelopSoftware\VanDyke Software\Clients\;D:\soft\xsfp\;c:\windows\system32;C:\Program Files (x86)\Common Files\NetSarang;D:\soft\svn\bin;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\bin;C:\Program Files\Java\jdk1.8.0.172\jdk\jdk1.8.0_172\jre\bin;D:\DevelopSoftware\apache\apache-maven-3.6.1\bin;D:\soft\activemq-01\bin;C:\WINDOWS;C:\WINDOWS\system32\wbem;D:\soft\torGit\bin;"C:\Program Files\RabbitMQ Server\rabbitmq_server-3.8.5\sbin;";D:\soft\Git\cmd;D:\DevelopSoftware\apache\apache-maven-3.6.1\bin;D:\DevelopSoftware\apache\apache-tomcat-7.0.106\lib;D:\DevelopSoftware\apache\apache-tomcat-7.0.106\bin;D:\DevelopSoftware\apache-jmeter-5.4.1\bin;D:\DevelopSoftware\nodejs\;C:\ProgramData\chocolatey\bin;D:\DevelopSoftware\Python\Python39\Scripts\;D:\DevelopSoftware\Python\Python39\;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;D:\DevelopSoftware\Fiddler;D:\DevelopSoftware\Microsoft VS Code\bin;D:\DevelopSoftware\apache-jmeter-5.4.1\bin;C:\Users\Administrator\AppData\Roaming\npm;.
-
2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:java.io.tmpdir=C:\Users\ADMINI~2\AppData\Local\Temp\
-
2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:java.compiler=<NA>
-
2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:os.name=Windows 10
-
2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:os.arch=amd64
-
2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:os.version=10.0
-
2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:user.name=Administrator
-
2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:user.home=C:\Users\Administrator
-
2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:user.dir=E:\myWorkspace\myjob
-
2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:os.memory.free=229MB
-
2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:os.memory.max=3632MB
-
2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:os.memory.total=333MB
-
2022-09-01 10:20:31.754 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Initiating client connection, connectString=localhost:2181 sessionTimeout=60000 watcher=org.apache.curator.ConnectionState@2eadc9f6
-
2022-09-01 10:20:31.757 INFO 32316 --- [ main] org.apache.zookeeper.common.X509Util : Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation
-
2022-09-01 10:20:31.767 INFO 32316 --- [ main] org.apache.zookeeper.ClientCnxnSocket : jute.maxbuffer value is 1048575 Bytes
-
2022-09-01 10:20:31.771 INFO 32316 --- [ main] org.apache.zookeeper.ClientCnxn : zookeeper.request.timeout value is 0. feature enabled=false
-
2022-09-01 10:20:31.777 INFO 32316 --- [ main] o.a.c.f.imps.CuratorFrameworkImpl : Default schema
-
2022-09-01 10:20:31.782 INFO 32316 --- [localhost:2181)] org.apache.zookeeper.ClientCnxn : Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181.
-
2022-09-01 10:20:31.783 INFO 32316 --- [localhost:2181)] org.apache.zookeeper.ClientCnxn : SASL config status: Will not attempt to authenticate using SASL (unknown error)
-
2022-09-01 10:20:31.784 INFO 32316 --- [localhost:2181)] org.apache.zookeeper.ClientCnxn : Socket connection established, initiating session, client: /0:0:0:0:0:0:0:1:51270, server: localhost/0:0:0:0:0:0:0:1:2181
-
2022-09-01 10:20:31.850 INFO 32316 --- [localhost:2181)] org.apache.zookeeper.ClientCnxn : Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, session id = 0x1006fafd5ce0078, negotiated timeout = 40000
-
2022-09-01 10:20:31.857 INFO 32316 --- [ain-EventThread] o.a.c.f.state.ConnectionStateManager : State change: CONNECTED
-
2022-09-01 10:20:31.880 INFO 32316 --- [ain-EventThread] o.a.c.framework.imps.EnsembleTracker : New config event received: {}
-
2022-09-01 10:20:31.881 INFO 32316 --- [ain-EventThread] o.a.c.framework.imps.EnsembleTracker : New config event received: {}
-
2022-09-01 10:20:31.940 INFO 32316 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
-
2022-09-01 10:20:31.940 WARN 32316 --- [ main] com.zaxxer.hikari.util.DriverDataSource : Registered driver with driverClassName=com.mysql.jdbc.Driver was not found, trying direct instantiation.
-
2022-09-01 10:20:32.195 INFO 32316 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
-
2022-09-01 10:20:32.387 INFO 32316 --- [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 1 endpoint(s) beneath base path '/actuator'
-
2022-09-01 10:20:32.405 INFO 32316 --- [ main] l.s.b.j.ElasticJobBootstrapConfiguration : creating Job Bootstrap Beans
-
2022-09-01 10:20:32.425 INFO 32316 --- [ main] .l.s.c.s.SpringProxyJobClassNameProvider : create SpringProxyJobClassNameProvider
-
2022-09-01 10:20:32.710 INFO 32316 --- [ main] org.quartz.impl.StdSchedulerFactory : Using default implementation for ThreadExecutor
-
2022-09-01 10:20:32.720 INFO 32316 --- [ main] org.quartz.core.SchedulerSignalerImpl : Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
-
2022-09-01 10:20:32.721 INFO 32316 --- [ main] org.quartz.core.QuartzScheduler : Quartz Scheduler v.2.3.2 created.
-
2022-09-01 10:20:32.721 INFO 32316 --- [ main] o.a.s.e.l.i.s.JobShutdownHookPlugin : Registering Quartz shutdown hook. myElasticJob
-
2022-09-01 10:20:32.722 INFO 32316 --- [ main] org.quartz.simpl.RAMJobStore : RAMJobStore initialized.
-
2022-09-01 10:20:32.722 INFO 32316 --- [ main] org.quartz.core.QuartzScheduler : Scheduler meta-data: Quartz Scheduler (v2.3.2) 'myElasticJob' with instanceId 'NON_CLUSTERED'
-
Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
-
NOT STARTED.
-
Currently in standby mode.
-
Number of jobs executed: 0
-
Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 1 threads.
-
Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.
-
-
2022-09-01 10:20:32.722 INFO 32316 --- [ main] org.quartz.impl.StdSchedulerFactory : Quartz scheduler 'myElasticJob' initialized from an externally provided properties instance.
-
2022-09-01 10:20:32.723 INFO 32316 --- [ main] org.quartz.impl.StdSchedulerFactory : Quartz scheduler version: 2.3.2
-
2022-09-01 10:20:32.731 INFO 32316 --- [ main] org.apache.curator.utils.Compatibility : Using org.apache.zookeeper.server.quorum.MultipleAddresses
-
2022-09-01 10:20:33.572 INFO 32316 --- [ main] l.s.b.j.ElasticJobBootstrapConfiguration : Job Bootstrap Beans created.
-
2022-09-01 10:20:33.587 INFO 32316 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
-
2022-09-01 10:20:33.602 INFO 32316 --- [ main] com.example.myjob.MyjobApplication : Started MyjobApplication in 13.284 seconds (JVM running for 14.087)
-
2022-09-01 10:20:33.610 INFO 32316 --- [ main] .s.b.j.ScheduleJobBootstrapStartupRunner : Starting ElasticJob Bootstrap.
-
2022-09-01 10:20:33.616 INFO 32316 --- [ main] org.quartz.core.QuartzScheduler : Scheduler myElasticJob_$_NON_CLUSTERED started.
-
2022-09-01 10:20:33.616 INFO 32316 --- [ main] .s.b.j.ScheduleJobBootstrapStartupRunner : ElasticJob Bootstrap started.
-
2022-09-01 10:20:35.105 INFO 32316 --- [ticJob_Worker-1] com.example.myjob.MyElasticJob : MyElasticJob start, shardingItem:0
-
2022-09-01 10:20:40.016 INFO 32316 --- [ticJob_Worker-1] com.example.myjob.MyElasticJob : MyElasticJob start, shardingItem:0
-
2022-09-01 10:20:45.031 INFO 32316 --- [ticJob_Worker-1] com.example.myjob.MyElasticJob : MyElasticJob start, shardingItem:0
-
2022-09-01 10:20:50.012 INFO 32316 --- [ticJob_Worker-1] com.example.myjob.MyElasticJob : MyElasticJob start, shardingItem:0
-
2022-09-01 10:20:55.011 INFO 32316 --- [ticJob_Worker-1] com.example.myjob.MyElasticJob : MyElasticJob start, shardingItem:0
-
2022-09-01 10:21:00.012 INFO 32316 --- [ticJob_Worker-1] com.example.myjob.MyElasticJob : MyElasticJob start, shardingItem:0
5、查看自己的数据库表,也能看到,执行记录有插入了记录
6、如果想通过elasticjob-UI界面查看、修改cron等操作,可以继续下面的操作
(1)下载elasticjob-UI的服务包
https://downloads.apache.org/shardingsphere/elasticjob-ui-{elasticjob version}/apache-shardingsphere-elasticjob-{elasticjob version}-lite-ui-bin.tar.gz
{elasticjob version}是你maven项目里面pom使用的elasticjob版本,最好maven下载的elasticjob-lite版本跟UI版本一致,比如我的就是
下载下来后,windows的注意用
tar zxvf apache-shardingsphere-elasticjob-3.0.1-lite-ui-bin.tar.gz 解压,防止windows的工具解压有问题
(2)进入到\apache-shardingsphere-elasticjob-3.0.1-lite-ui-bin\bin,双击打开start.bat(如果linux平台,则执行start.sh)
服务启动完成,端口号为8088
(3)打开浏览器,输出http://localhost:8088
账号密码都是root
登录进入后,全局配置-注册中心配置-添加
填入你在application.properties设置的命名空间、zk地址
-
elasticjob.reg-center.namespace=my-elastic-job
-
#elasticjob注册中心配置 本地zookepper地址
-
elasticjob.reg-center.server-lists=localhost:2181
添加完成后,点击右边绿色按钮,触发下链接,通过后则UI界面连接上了zk上的elasticjob服务
(4)同时也可以配置下读取数据库,触发链接后,就可以在页面上看数据库的表记录
(5)可以手动界面修改、触发elasticjob任务
三、扩展
1、相关maven项目的代码也已经上传,可自行下载:上文elasticjob-maven项目源码
2、深入了解原理,可以看下elasticjob的官方文档:ElasticJob官方文档
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgaekbb
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24