• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

elasticjob的入门maven项目搭建

武飞扬头像
Venlenter
帮助1

一、项目所需工具

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

二、项目搭建

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

  1.  
    <?xml version="1.0" encoding="UTF-8"?>
  2.  
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3.  
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4.  
    <modelVersion>4.0.0</modelVersion>
  5.  
    <parent>
  6.  
    <groupId>org.springframework.boot</groupId>
  7.  
    <artifactId>spring-boot-starter-parent</artifactId>
  8.  
    <version>2.7.3</version>
  9.  
    <relativePath/> <!-- lookup parent from repository -->
  10.  
    </parent>
  11.  
    <groupId>com.example</groupId>
  12.  
    <artifactId>myjob</artifactId>
  13.  
    <version>0.0.1-SNAPSHOT</version>
  14.  
    <name>myjob</name>
  15.  
    <description>Demo project for elasticJob</description>
  16.  
    <properties>
  17.  
    <java.version>1.8</java.version>
  18.  
    </properties>
  19.  
    <dependencies>
  20.  
    <dependency>
  21.  
    <groupId>org.springframework.boot</groupId>
  22.  
    <artifactId>spring-boot-starter-actuator</artifactId>
  23.  
    </dependency>
  24.  
    <dependency>
  25.  
    <groupId>org.springframework.boot</groupId>
  26.  
    <artifactId>spring-boot-starter-web</artifactId>
  27.  
    </dependency>
  28.  
     
  29.  
    <dependency>
  30.  
    <groupId>org.springframework.boot</groupId>
  31.  
    <artifactId>spring-boot-starter-test</artifactId>
  32.  
    <scope>test</scope>
  33.  
    </dependency>
  34.  
     
  35.  
    <dependency>
  36.  
    <groupId>org.springframework.boot</groupId>
  37.  
    <artifactId>spring-boot-starter-jdbc</artifactId>
  38.  
    </dependency>
  39.  
    <!-- MySQL 连接驱动依赖 -->
  40.  
    <dependency>
  41.  
    <groupId>mysql</groupId>
  42.  
    <artifactId>mysql-connector-java</artifactId>
  43.  
    </dependency>
  44.  
     
  45.  
    <dependency>
  46.  
    <groupId>org.apache.shardingsphere.elasticjob</groupId>
  47.  
    <artifactId>elasticjob-lite-core</artifactId>
  48.  
    <version>3.0.1</version>
  49.  
    </dependency>
  50.  
    <dependency>
  51.  
    <groupId>org.apache.shardingsphere.elasticjob</groupId>
  52.  
    <artifactId>elasticjob-lite-spring-boot-starter</artifactId>
  53.  
    <version>3.0.1</version>
  54.  
    </dependency>
  55.  
    </dependencies>
  56.  
     
  57.  
    <build>
  58.  
    <plugins>
  59.  
    <plugin>
  60.  
    <groupId>org.springframework.boot</groupId>
  61.  
    <artifactId>spring-boot-maven-plugin</artifactId>
  62.  
    </plugin>
  63.  
    </plugins>
  64.  
    </build>
  65.  
     
  66.  
    </project>
学新通

2、新建一个自己的自定义Job类,实现SimpleJob(elasticjob的接口)接口

  1.  
    package com.example.myjob;
  2.  
     
  3.  
    import org.apache.shardingsphere.elasticjob.api.ShardingContext;
  4.  
    import org.apache.shardingsphere.elasticjob.simple.job.SimpleJob;
  5.  
    import org.slf4j.Logger;
  6.  
    import org.slf4j.LoggerFactory;
  7.  
    import org.springframework.stereotype.Component;
  8.  
     
  9.  
     
  10.  
    /**
  11.  
    * 类功能说明
  12.  
    *
  13.  
    * @author venlenter
  14.  
    * @date 2022/8/31 11:35
  15.  
    */
  16.  
    @Component
  17.  
    public class MyElasticJob implements SimpleJob {
  18.  
    private final Logger logger = LoggerFactory.getLogger(MyElasticJob.class);
  19.  
     
  20.  
    @Override
  21.  
    public void execute(ShardingContext shardingContext) {
  22.  
    logger.info("MyElasticJob start, shardingItem:" shardingContext.getShardingItem());
  23.  
     
  24.  
    }
  25.  
    }
学新通

3、配置下application.properties

  1.  
    #elasticjob注册中心配置 本地zookepper地址
  2.  
    elasticjob.reg-center.server-lists=localhost:2181
  3.  
    #是否启用job(true生效,false不生效)
  4.  
    elasticjob.enabled=true
  5.  
     
  6.  
    #elasticJob配置 配置为数据库作为日志记录
  7.  
    elasticjob.tracing.type=RDB
  8.  
    elasticjob.reg-center.namespace=my-elastic-job
  9.  
     
  10.  
    #配置项为 elasticjob.jobs.[自定义job名].elasticJobClass
  11.  
    elasticjob.jobs.myElasticJob.elasticJobClass=com.example.myjob.MyElasticJob
  12.  
    elasticjob.jobs.myElasticJob.cron=0/5 * * * * ?
  13.  
    elasticjob.jobs.myElasticJob.overwrite=true
  14.  
    elasticjob.jobs.myElasticJob.shardingTotalCount=1
  15.  
     
  16.  
    #数据库配置
  17.  
    spring.datasource.url=jdbc:mysql://111.222.333.444:3306/job_db?useUnicode=true&useSSL=false&characterEncoding=utf8&allowMultiQueries=true
  18.  
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  19.  
    spring.datasource.username=xxx
  20.  
    spring.datasource.password=yyyy
学新通

数据库需要提前初始化,新建2张表,用于elasticjob请求存储,如果不需要用到请求日志存储,也可以把屏蔽掉elasticjob.tracing.type=RDB这个配置。

所需的2张表建表语句如下

  1.  
    CREATE TABLE `job_execution_log` (
  2.  
    `auto_id` int(11) NOT NULL AUTO_INCREMENT,
  3.  
    `id` varchar(40) NOT NULL,
  4.  
    `job_name` varchar(100) NOT NULL,
  5.  
    `task_id` varchar(255) NOT NULL,
  6.  
    `hostname` varchar(255) NOT NULL,
  7.  
    `ip` varchar(50) NOT NULL,
  8.  
    `sharding_item` int(11) NOT NULL,
  9.  
    `execution_source` varchar(20) NOT NULL,
  10.  
    `failure_cause` varchar(4000) DEFAULT NULL,
  11.  
    `is_success` int(11) NOT NULL,
  12.  
    `start_time` timestamp NULL DEFAULT NULL,
  13.  
    `complete_time` timestamp NULL DEFAULT NULL,
  14.  
    PRIMARY KEY (`auto_id`),
  15.  
    UNIQUE KEY `id` (`id`)
  16.  
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  17.  
     
  18.  
     
  19.  
    CREATE TABLE `job_status_trace_log` (
  20.  
    `auto_id` int(11) NOT NULL AUTO_INCREMENT,
  21.  
    `id` varchar(40) NOT NULL,
  22.  
    `job_name` varchar(100) NOT NULL,
  23.  
    `original_task_id` varchar(255) NOT NULL,
  24.  
    `task_id` varchar(255) NOT NULL,
  25.  
    `slave_id` varchar(50) NOT NULL,
  26.  
    `source` varchar(50) NOT NULL,
  27.  
    `execution_type` varchar(20) NOT NULL,
  28.  
    `sharding_item` varchar(100) NOT NULL,
  29.  
    `state` varchar(20) NOT NULL,
  30.  
    `message` varchar(4000) DEFAULT NULL,
  31.  
    `creation_time` timestamp NULL DEFAULT NULL,
  32.  
    PRIMARY KEY (`auto_id`),
  33.  
    KEY `TASK_ID_STATE_INDEX` (`task_id`(128),`state`)
  34.  
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
学新通

4、启动本地zk,再启动上述的maven项目application。然后就可以看到elasticjob不断定时触发执行了

  1.  
    . ____ _ __ _ _
  2.  
    /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
  3.  
    ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
  4.  
    \\/ ___)| |_)| | | | | || (_| | ) ) ) )
  5.  
    ' |____| .__|_| |_|_| |_\__, | / / / /
  6.  
    =========|_|==============|___/=/_/_/_/
  7.  
    :: Spring Boot :: (v2.7.3)
  8.  
     
  9.  
    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)
  10.  
    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"
  11.  
    2022-09-01 10:20:22.034 INFO 32316 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
  12.  
    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]
  13.  
    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].
  14.  
    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].
  15.  
    2022-09-01 10:20:22.035 INFO 32316 --- [ main] o.a.catalina.core.AprLifecycleListener : APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
  16.  
    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]
  17.  
    2022-09-01 10:20:22.048 INFO 32316 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
  18.  
    2022-09-01 10:20:22.049 INFO 32316 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.65]
  19.  
    2022-09-01 10:20:22.267 INFO 32316 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
  20.  
    2022-09-01 10:20:22.267 INFO 32316 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1323 ms
  21.  
    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.
  22.  
    2022-09-01 10:20:22.734 INFO 32316 --- [ main] o.a.c.f.imps.CuratorFrameworkImpl : Starting
  23.  
    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
  24.  
    2022-09-01 10:20:31.750 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:host.name=DESKTOP-U45JULJ
  25.  
    2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:java.version=1.8.0_172
  26.  
    2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:java.vendor=Oracle Corporation
  27.  
    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
  28.  
    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
  29.  
    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;.
  30.  
    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\
  31.  
    2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:java.compiler=<NA>
  32.  
    2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:os.name=Windows 10
  33.  
    2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:os.arch=amd64
  34.  
    2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:os.version=10.0
  35.  
    2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:user.name=Administrator
  36.  
    2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:user.home=C:\Users\Administrator
  37.  
    2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:user.dir=E:\myWorkspace\myjob
  38.  
    2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:os.memory.free=229MB
  39.  
    2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:os.memory.max=3632MB
  40.  
    2022-09-01 10:20:31.751 INFO 32316 --- [ main] org.apache.zookeeper.ZooKeeper : Client environment:os.memory.total=333MB
  41.  
    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
  42.  
    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
  43.  
    2022-09-01 10:20:31.767 INFO 32316 --- [ main] org.apache.zookeeper.ClientCnxnSocket : jute.maxbuffer value is 1048575 Bytes
  44.  
    2022-09-01 10:20:31.771 INFO 32316 --- [ main] org.apache.zookeeper.ClientCnxn : zookeeper.request.timeout value is 0. feature enabled=false
  45.  
    2022-09-01 10:20:31.777 INFO 32316 --- [ main] o.a.c.f.imps.CuratorFrameworkImpl : Default schema
  46.  
    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.
  47.  
    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)
  48.  
    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
  49.  
    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
  50.  
    2022-09-01 10:20:31.857 INFO 32316 --- [ain-EventThread] o.a.c.f.state.ConnectionStateManager : State change: CONNECTED
  51.  
    2022-09-01 10:20:31.880 INFO 32316 --- [ain-EventThread] o.a.c.framework.imps.EnsembleTracker : New config event received: {}
  52.  
    2022-09-01 10:20:31.881 INFO 32316 --- [ain-EventThread] o.a.c.framework.imps.EnsembleTracker : New config event received: {}
  53.  
    2022-09-01 10:20:31.940 INFO 32316 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
  54.  
    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.
  55.  
    2022-09-01 10:20:32.195 INFO 32316 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
  56.  
    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'
  57.  
    2022-09-01 10:20:32.405 INFO 32316 --- [ main] l.s.b.j.ElasticJobBootstrapConfiguration : creating Job Bootstrap Beans
  58.  
    2022-09-01 10:20:32.425 INFO 32316 --- [ main] .l.s.c.s.SpringProxyJobClassNameProvider : create SpringProxyJobClassNameProvider
  59.  
    2022-09-01 10:20:32.710 INFO 32316 --- [ main] org.quartz.impl.StdSchedulerFactory : Using default implementation for ThreadExecutor
  60.  
    2022-09-01 10:20:32.720 INFO 32316 --- [ main] org.quartz.core.SchedulerSignalerImpl : Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
  61.  
    2022-09-01 10:20:32.721 INFO 32316 --- [ main] org.quartz.core.QuartzScheduler : Quartz Scheduler v.2.3.2 created.
  62.  
    2022-09-01 10:20:32.721 INFO 32316 --- [ main] o.a.s.e.l.i.s.JobShutdownHookPlugin : Registering Quartz shutdown hook. myElasticJob
  63.  
    2022-09-01 10:20:32.722 INFO 32316 --- [ main] org.quartz.simpl.RAMJobStore : RAMJobStore initialized.
  64.  
    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'
  65.  
    Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
  66.  
    NOT STARTED.
  67.  
    Currently in standby mode.
  68.  
    Number of jobs executed: 0
  69.  
    Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 1 threads.
  70.  
    Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.
  71.  
     
  72.  
    2022-09-01 10:20:32.722 INFO 32316 --- [ main] org.quartz.impl.StdSchedulerFactory : Quartz scheduler 'myElasticJob' initialized from an externally provided properties instance.
  73.  
    2022-09-01 10:20:32.723 INFO 32316 --- [ main] org.quartz.impl.StdSchedulerFactory : Quartz scheduler version: 2.3.2
  74.  
    2022-09-01 10:20:32.731 INFO 32316 --- [ main] org.apache.curator.utils.Compatibility : Using org.apache.zookeeper.server.quorum.MultipleAddresses
  75.  
    2022-09-01 10:20:33.572 INFO 32316 --- [ main] l.s.b.j.ElasticJobBootstrapConfiguration : Job Bootstrap Beans created.
  76.  
    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 ''
  77.  
    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)
  78.  
    2022-09-01 10:20:33.610 INFO 32316 --- [ main] .s.b.j.ScheduleJobBootstrapStartupRunner : Starting ElasticJob Bootstrap.
  79.  
    2022-09-01 10:20:33.616 INFO 32316 --- [ main] org.quartz.core.QuartzScheduler : Scheduler myElasticJob_$_NON_CLUSTERED started.
  80.  
    2022-09-01 10:20:33.616 INFO 32316 --- [ main] .s.b.j.ScheduleJobBootstrapStartupRunner : ElasticJob Bootstrap started.
  81.  
    2022-09-01 10:20:35.105 INFO 32316 --- [ticJob_Worker-1] com.example.myjob.MyElasticJob : MyElasticJob start, shardingItem:0
  82.  
    2022-09-01 10:20:40.016 INFO 32316 --- [ticJob_Worker-1] com.example.myjob.MyElasticJob : MyElasticJob start, shardingItem:0
  83.  
    2022-09-01 10:20:45.031 INFO 32316 --- [ticJob_Worker-1] com.example.myjob.MyElasticJob : MyElasticJob start, shardingItem:0
  84.  
    2022-09-01 10:20:50.012 INFO 32316 --- [ticJob_Worker-1] com.example.myjob.MyElasticJob : MyElasticJob start, shardingItem:0
  85.  
    2022-09-01 10:20:55.011 INFO 32316 --- [ticJob_Worker-1] com.example.myjob.MyElasticJob : MyElasticJob start, shardingItem:0
  86.  
    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地址

  1.  
    elasticjob.reg-center.namespace=my-elastic-job
  2.  
    #elasticjob注册中心配置 本地zookepper地址
  3.  
    elasticjob.reg-center.server-lists=localhost:2181

添加完成后,点击右边绿色按钮,触发下链接,通过后则UI界面连接上了zk上的elasticjob服务

学新通

 (4)同时也可以配置下读取数据库,触发链接后,就可以在页面上看数据库的表记录

学新通

学新通

 (5)可以手动界面修改、触发elasticjob任务

学新通

 学新通

三、扩展

1、相关maven项目的代码也已经上传,可自行下载:上文elasticjob-maven项目源码

2、深入了解原理,可以看下elasticjob的官方文档:ElasticJob官方文档

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgaekbb
系列文章
更多 icon
同类精品
更多 icon
继续加载