In diesem Artikel wird der Implementierungscode von Springboot Integrated Eleaticjob Timer eingeführt. Teile es mit dir. Die Details sind wie folgt:
POM -Dateikonfiguration
<? xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>demojob</artifactId> <version> 0.0.1-Snapshot </Version> <Packages> jar </packaging> <name> Demojob </name> <beschreibung> Demo-Projekt für Spring-Boot </Beschreibung> <Eltern> <gruppe> org.springFramework <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <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> </abhängig> <!-elastic-job-> <depeopecy> <artifactid> elastic-job-common-core </artifactId> <gruppe> com.dangdang </gruppe> <version> 2.1.5 </Version> </abhängig> <abhängig> <artifactid> elastic-job-lite-core </artifactid> <groupid> com.-job-lit-core </artifactid> <groupid> com. <version>2.1.5</version> </dependency> <dependency> <artifactId>elastic-job-lite-spring</artifactId> <groupId>com.dangdang</groupId> <version>2.1.5</version> </dependency> <dependency> <artifactId>elastic-job-cloud-executor</artifactId> <groupId>com.dangdang</groupId> <version> 2.1.5 </Version> </abhängig> <!-mariadb-> <depelzie> <gruppe> org.mariadb.jdbc </Groupid> <artifactId> mariadb-java-client </artifactId> <version> 1.5.4 </Version> </com./com./com./com./com./com./drud> <! <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.9</version> </dependency> <!--mybatis plus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatisplus-spring-boot-starter</artifactId> <version>1.0.5</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>2.1.9</version> </dependency> </dependency> </dependencies> <build> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
YAML -Dateikonfiguration (kann auch Application.Properties verwenden)
# Konfigurieren Sie die Konfigurationsdatenquelle Spring: DataSource: Typ: com.alibaba.druid.pool.druiddatasource Fahrerklasse-Name: org.mariadb.jdbc.driver Name: elastic-Job-Event url: jdbc: mariaDb: //127. ValidationQuery: Select 1 InitialSize: 10 Minidle: 10 MaxActive: 200 minevictableIdletImemillis: 180000 testonborrow: Falsch test während Namespace: hulk_order_task# Timer Regeln SimpleJob: Cron: 0/5 * * * *? Shardingtotalcount: 1 Shardingitemparameter: 0 = 1
Schreiben Sie Code
RegistryCenterconfig
paket com.example.demojob.config; import com.dangdang.ddframe.job.reg.zookeeper.zookeeperconfiguration; import com.dangdang.ddframe.job.reg.zookeeper.zookeper.zookeerregistrycenter; organ. * @author shudalei */@Configuration@ConditionalOnExpression("'${regCenter.serverList}'.length() > 0")public class RegistryCenterConfig { @Bean(initMethod = "init") public ZookeeperRegistryCenter regCenter(@Value("${regCenter.serverList}") final String serverList, @Value ("$ {regcenter.nameSpace}") Final String Namespace) {Neue ZookeeperRegistryCenter zurückgeben (neuer ZookeePerconfiguration (Serverlist, Namespace)); }}JobEventconfig
paket com.example.demojob.config; import com.dangdang.ddframe.job.event.jobeventConfiguration; import com.dangdang.ddframe.job.event.rdb.jobentrdbconfiguration; import org.springframe.context.annotation.Bean.Bean; org.springframework.context.annotation.configuration; import Javax.annotation * Derzeit gibt es nur eine Klasse, die diese Schnittstelle implementiert. * Dadurch können Sie die Spuren des Jobs bestehen, der auf DB läuft. * @Author Shudalei */ @configurationPublic class JobEventConfig {@resource private dataSource DataSource; @Bean public JobEventConfiguration JobEventConfiguration () {Neue JobEventErdbConfiguration (DataSource) zurückgeben; }}Simplejobconfig
paket com.example.demojob.config; import com.dangdang.ddframe.job.config.jobcoreConfiguration; Import com.dangdang.ddframe.job.config.simple.simplejobconfiguration; Import Com.dangdang.ddrame.job.job.job.jobentConfiguration; com.dangdang.ddframe.job.lite.api.jobscheduler; import com.dangdang.ddrame.job.lite.config.litejobconfiguration; import com.dangdang.dddrame.job.lite.spring.api.springjobsplaner; com.dangdang.ddframe.job.reg.zookeeper.zookeperregistryCenter; Import com.example.demojob.job.TestSimplejob; org.springframework.context.annotation.configuration; import javax.annotation / *** Jobereigniskonfiguration*/ @resource Private JobEventConfiguration JobEventConfiguration; / *** WeChat Access Token Get Task -Objekt**/ @resource private testSimplejob simplejob; / **** @param cron zeitgesteuerte Task -Cron -Konfiguration* @param shardingtotalcount Anzahl der Task -Shards* @param shardingitemparameters task Sharding -Parameter* @return jobscheduler Taskscheduler*/ @bean (initMethod = ") publicScheduler simplejobsceduler (@val (@val @Value("${simpleJob.shardingTotalCount}") final int shardingTotalCount, @Value("${simpleJob.shardingItemParameters}") final String shardingItemParameters) { return new SpringJobScheduler(simpleJob, regCenter, getLiteJobConfiguration(simpleJob.getClass(), cron, Shardingtotalcount, Shardingitemparameters), JobEventConfiguration); } / **** @param JobClass Task Planing -Klasse* @param cron Task Cron Configuration* @param shardingtotAncount Anzahl der Task -Scherben* @param shardingitemparameters task Sharding -Parameter* @return litejobconfiguration tasks tasks -addlitejobconfiguration getloTlitejobconfiguration (Abschluss klassifiziert. com.dangdang.ddframe.job.api.simple.simplejob> JobClass, Final String Cron, Final Int ShardingtotalCount, Finale String ShardingItemparameters) {return litejobconfiguration .Newbuilder (new simplejobconefiguration (jobcoreconconation.Newbuper () (JobCoreconfiguration (crocnecon) (crocorEconfiguration (crossconfiguration) (jobcoreconfiguration () (crocneconfiguration (crossconfiguring shardingtotalcount) .shardingItemparameters (ShardingItemparameters) .build (), JobClass.getCanonicalName ()) .Overwrite (wahr) .build (); }}TestSimplejob, die Timer -Aufgabe selbst
paket com.example.demojob.job; import com.dangdang.ddframe.job.api.shardingcontext; import com.dangdang.ddframe.job.api.simple.simplejob; // Die Aufgabe besteht darin, die Konsolenausgabe 1, 2, 3 alle 5 Sekunden auszuführen. System.out.println ("task" + count); }} Installieren Sie Zookeeper unter Docker schließlich
Das Installationsskript -Komponierungsdatei lautet wie folgt
Version: '2'Sservices: Zookeeper01: Bild: Zookeeper Neustart: Immer Hostname: Zookeeper01 Ports: - 2181: 2181 Umgebung: Zoo_My_ID: 1 Zoo_Servers: Server.1 = 0.0.0.0: 2888: 3888 Server.2 = Zookeper02: 288888: 3888 Server. server.3=zookeeper03:2888:3888 zookeeper02: image: zookeeper restart: always hostname: zookeeper02 ports: - 2182:2181 environment: ZOO_MY_ID: 2 ZOO_SERVERS: server.1=zookeeper01:2888:3888 server.2=0.0.0.0:2888:3888 Server.3 = Zookeeper03: 2888: 3888 Zookeeper03: Bild: Zookeeper Neustart: Immer Hostname: Zookeeper03 Ports: - 2183: 2181 Umgebung: Zoo_My_ID: 3 Zoo_Servers: Server.1 = Zookeper01: 288: 388888888888888888888888888888888. Server.2 = Zookeeper02: 2888: 3888 Server.3 = 0.0.0.0: 2888: 38888
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.