• 基于elasticjob的入门maven项目搭建


    一、项目所需工具

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

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

    二、项目搭建

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

    1. "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.0modelVersion>
    5. <parent>
    6. <groupId>org.springframework.bootgroupId>
    7. <artifactId>spring-boot-starter-parentartifactId>
    8. <version>2.7.3version>
    9. <relativePath/>
    10. parent>
    11. <groupId>com.examplegroupId>
    12. <artifactId>myjobartifactId>
    13. <version>0.0.1-SNAPSHOTversion>
    14. <name>myjobname>
    15. <description>Demo project for elasticJobdescription>
    16. <properties>
    17. <java.version>1.8java.version>
    18. properties>
    19. <dependencies>
    20. <dependency>
    21. <groupId>org.springframework.bootgroupId>
    22. <artifactId>spring-boot-starter-actuatorartifactId>
    23. dependency>
    24. <dependency>
    25. <groupId>org.springframework.bootgroupId>
    26. <artifactId>spring-boot-starter-webartifactId>
    27. dependency>
    28. <dependency>
    29. <groupId>org.springframework.bootgroupId>
    30. <artifactId>spring-boot-starter-testartifactId>
    31. <scope>testscope>
    32. dependency>
    33. <dependency>
    34. <groupId>org.springframework.bootgroupId>
    35. <artifactId>spring-boot-starter-jdbcartifactId>
    36. dependency>
    37. <dependency>
    38. <groupId>mysqlgroupId>
    39. <artifactId>mysql-connector-javaartifactId>
    40. dependency>
    41. <dependency>
    42. <groupId>org.apache.shardingsphere.elasticjobgroupId>
    43. <artifactId>elasticjob-lite-coreartifactId>
    44. <version>3.0.1version>
    45. dependency>
    46. <dependency>
    47. <groupId>org.apache.shardingsphere.elasticjobgroupId>
    48. <artifactId>elasticjob-lite-spring-boot-starterartifactId>
    49. <version>3.0.1version>
    50. dependency>
    51. dependencies>
    52. <build>
    53. <plugins>
    54. <plugin>
    55. <groupId>org.springframework.bootgroupId>
    56. <artifactId>spring-boot-maven-pluginartifactId>
    57. plugin>
    58. plugins>
    59. build>
    60. project>

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

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

    3、配置下application.properties

    1. #elasticjob注册中心配置 本地zookepper地址
    2. elasticjob.reg-center.server-lists=localhost:2181
    3. #是否启用job(true生效,false不生效)
    4. elasticjob.enabled=true
    5. #elasticJob配置 配置为数据库作为日志记录
    6. elasticjob.tracing.type=RDB
    7. elasticjob.reg-center.namespace=my-elastic-job
    8. #配置项为 elasticjob.jobs.[自定义job名].elasticJobClass
    9. elasticjob.jobs.myElasticJob.elasticJobClass=com.example.myjob.MyElasticJob
    10. elasticjob.jobs.myElasticJob.cron=0/5 * * * * ?
    11. elasticjob.jobs.myElasticJob.overwrite=true
    12. elasticjob.jobs.myElasticJob.shardingTotalCount=1
    13. #数据库配置
    14. spring.datasource.url=jdbc:mysql://111.222.333.444:3306/job_db?useUnicode=true&useSSL=false&characterEncoding=utf8&allowMultiQueries=true
    15. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    16. spring.datasource.username=xxx
    17. 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. CREATE TABLE `job_status_trace_log` (
    18. `auto_id` int(11) NOT NULL AUTO_INCREMENT,
    19. `id` varchar(40) NOT NULL,
    20. `job_name` varchar(100) NOT NULL,
    21. `original_task_id` varchar(255) NOT NULL,
    22. `task_id` varchar(255) NOT NULL,
    23. `slave_id` varchar(50) NOT NULL,
    24. `source` varchar(50) NOT NULL,
    25. `execution_type` varchar(20) NOT NULL,
    26. `sharding_item` varchar(100) NOT NULL,
    27. `state` varchar(20) NOT NULL,
    28. `message` varchar(4000) DEFAULT NULL,
    29. `creation_time` timestamp NULL DEFAULT NULL,
    30. PRIMARY KEY (`auto_id`),
    31. KEY `TASK_ID_STATE_INDEX` (`task_id`(128),`state`)
    32. ) ENGINE=InnoDB DEFAULT CHARSET=utf8

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

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

  • 相关阅读:
    pyinstaller最简单教程
    微信小程序|步骤条
    Hardhat开发智能合约和DApp
    JVM系列第二期——双亲委派和类加载器
    【回归预测-lssvm】基于粒子群算法优化最小二乘支持向量机lssvm实现数据回归预测附matlab代码
    【已解决】goland每次都自动删除我import的包
    Golang环境搭建Win10(简洁版)
    OpenCV数字图像处理实战一:去水印(C++)
    实战演练 | 使用纯 SQL 将表复制到新表
    Linux ARM平台开发系列讲解(调试篇) 1.4.3 S32G274A CAN和LLCE CAN调试
  • 原文地址:https://blog.csdn.net/asd051377305/article/details/126638352