当前位置: 首页 > news >正文

基于elasticjob的入门maven项目搭建

一、项目所需工具

1、zookepper:版本需要3.6.0+以上版本

apache-zookeeper-3.7.1-Java文档类资源-CSDN下载

二、项目搭建

1、首先新建一个maven项目,引入对应的elasticjob包,pom配置如下

<?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 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
 */
@Component
public class MyElasticJob implements SimpleJob {
    private final Logger logger = LoggerFactory.getLogger(MyElasticJob.class);

    @Override
    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\google\guava\guava\29.0-jre\guava-29.0-jre.jar;C:\Users\Administrator\.m2\repository\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar;C:\Users\Administrator\.m2\repository\com\google\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\google\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\google\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\google\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版本一致,比如我的就是

elasticjob-UI 3.0.1下载

下载下来后,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官方文档

相关文章:

  • 【校招VIP】产品项目分析之竞品分析
  • 服务端(后端)主动通知前端的实现:WebSocket(springboot中使用WebSocket案例)
  • 计算机毕业设计django基于python教学互动系统(源码+系统+mysql数据库+Lw文档)
  • 2022深圳xxx校招Java笔试题目(选择题+简答题)
  • 神经网络训练电脑配置,cpu可以训练神经网络吗
  • RFID读写器的功能
  • 神经元在人体内如何分布,人体神经元怎么分布的
  • Java基础:通过Callable创建多线程
  • 音视频封装格式:MPTG2-TS
  • Tlsr8258开发-修改蓝牙hid mouse
  • Miller Rabin学习笔记
  • 3D角色PBR入门简述
  • java毕业设计开题报告javaweb敬老院管理系统的设计和实现|养老院
  • 为什么电脑一用wps就卡住了?
  • Dubbo - 远程debug
  • Akka系列(七):Actor持久化之Akka persistence
  • gops —— Go 程序诊断分析工具
  • Javascript编码规范
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • MySQL主从复制读写分离及奇怪的问题
  • python_bomb----数据类型总结
  • select2 取值 遍历 设置默认值
  • springboot_database项目介绍
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 官方解决所有 npm 全局安装权限问题
  • 思否第一天
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 阿里云服务器如何修改远程端口?
  • ​secrets --- 生成管理密码的安全随机数​
  • ​马来语翻译中文去哪比较好?
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • (003)SlickEdit Unity的补全
  • (12)Linux 常见的三种进程状态
  • (16)Reactor的测试——响应式Spring的道法术器
  • (C语言)二分查找 超详细
  • (pytorch进阶之路)扩散概率模型
  • (TOJ2804)Even? Odd?
  • (ZT)一个美国文科博士的YardLife
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (四)c52学习之旅-流水LED灯
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (转)c++ std::pair 与 std::make
  • (转)负载均衡,回话保持,cookie
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .cfg\.dat\.mak(持续补充)
  • .naturalWidth 和naturalHeight属性,
  • .NET delegate 委托 、 Event 事件
  • .NET MVC之AOP
  • .NET 表达式计算:Expression Evaluator
  • .NET是什么