Artikel ini memperkenalkan kode implementasi timer ELATICJOB yang terintegrasi Springboot. Bagikan dengan Anda. Dengan rincian sebagai berikut:
Konfigurasi File 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 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> <groupdD> Com.example </Group </Groupy </ARTOD> </ModelVersion> <groupDid> COM.EXAMPLE </GROUPICE </GROUP </Group </ModelVersion> <version> 0.0.1-Snapshot </version> <packaging> jar </packaging> <name> demojob </name> <creckripe> Proyek demo untuk boot musim semi </cripence> <parter> <groupid> org.springframework.boot </groupid> <Artifactid> Spring-boots-starter-parent </Artath/Version.02.0. <!-Pencarian Orangtua dari Repositori-> </induk> <properties> <poject.build.sourceencoding> UTF-8 </project.build.sourceencoding> <poject.raporting.outputenCoding> UTF-8 </project.reporting.outputingencoding> <Java.8 </project.reporting.outputenCoding> <java <Dependencies> <dependency> <GroupId> org.springframework.boot </groupid> <ArtifactId> Spring-boot-starter-web </t Artifactid> </dependency> <sependency> <RoupId> org.springframework.boot </groupid> <ArtiFacTid> <crupt-boots-stasops.boot </groupid> <ArtiFacTID> <crupt-boots-stasops.boot </groupid> <ArtiFacTid> <artfactd> <cruct-boots-stasop. </Dependency> <!-Elastic-job-> <dependency> <Rtifactid> elastis-job-common-core </t Artifactid> <groupid> com.dangdang </groupid> <version> 2.1.5 </version> </Dependency> <ArtifactId> elastis elastis-Core </ArtIDICR> <version> 2.1.5 </version> </gandendency> <dependency> <Artifactid> elastic-job-lite-spring </arttifactid> <groupid> com.dangdang </groupid> <version> 2.1.5 </version> </depgendency> <TRIPTIDED> <ArTifacTID> elastis-job-cloud-coud-exutor> </AcTIDICED> <ArTifacTID> ELASTICDICDIDIDICID> <tifactid> <tifactid> elastic-job-coud-coud-coud-exutor> <version> 2.1.5 </version> </dependency> <!-mariadb-> <dependency> <groupid> org.mariadb.jdbc </sroupid> <Artifactid> mariadb-java-client </arttifactid> <version> 1.5.4 </Versi> </Dependency> <!-Druid> <version> <version> </Versi </Versi> </dependency> <!-druid> <version> <version> </Versi> </Versi </Dependency> <! <ArtifactId> druid-spring-boot-starter </arttifactid> <version> 1.1.9 </version> </dependency> <!-mybatis plus-> <dependency> <groupid> com.baomidou </groupid> <ArTifacTid> MyBatisplus-spring--Boots-STARTENCY </groupid> <ArTifacTid> <dependency> <GroupId> com.baomidou </groupid> <ArtifactId> mybatis-plus </artifactid> <version> 2.1.9 </version> </gandendency> </dependency> </dependencies> <build> <lugin> <groupid> org.springframework.boot </groupid> <builgin> <groupid> <ArTifactId> spring-boot-maven-plugin </artifactid> </lugin> </lugin> </build> </poject>
Konfigurasi File YAML (juga dapat menggunakan Application.Properties)
# Konfigurasi Sumber Data Konfigurasi Musim Semi: DataSource: Tipe: com.alibaba.druid.pool.druidDataSource-driver-class-name: org.mariadb.jdbc.driver Nama: elastis-job-event url: jdbc: mariadb: //127.0.0.0.0.1: 3306/3306/elitj: mariadb: //127.0.0.0.0.0.0.0.0.0.0.0.1: 3: validationQuery: SELECT 1 initialSize: 10 minIdle: 10 maxActive: 200 minEvictableIdleTimeMillis: 180000 testOnBorrow: false testWhileIdle: true removeAbandoned: true removeAbandonedTimeout: 1800 logAbandoned: true poolPreparedStatements: true maxOpenPreparedStatements: 100# Configure ZookeeperregCenter: serverList: localhost:2181 namespace: hulk_order_task# configure timer aturan SimpleJob: cron: 0/5 * * * *? ShardingTotalCount: 1 ShardingItemparameters: 0 = 1
Mulailah menulis kode
RegistryCenterConfig
Paket com.example.demojob.config; import com.dangdang.ddframe.job.reg.zookeepereper.zooKeeperconfiguration; impor com.dangdang.ddframe.job.reg.zookeeper.zooKeeper.zooKeeperregistrycenter; orgalg.zooKeePer.zooKeePer.zookeeperregistrerer; org.springframework.boot.autoconfigure.condition.conditionAlonexpression; impor org.springframework.context.annotation.bean; impor org.springframework.context.annotation.configuration;/** Pusat Registrasi* Komponen* Komponen* Komponen* Komponen* Komponen* Componate* COMPONSIONAL* COMPONIBER PEKERJAAN DAN KONFERMIRASI; * @Author shudalei */@configuration@conditiononexpression ("'$ {RegCenter.ServerList}'. Length ()> 0") RegistryCenterConfig kelas publik {@bean (initmethod = "init") Public Zookeeperregistry RegCenter {@value ("$ {$ {$ {$ {$ {$ {$ {$ {$ {$ {$ {(" $ {$ {$ {$ {$ {$ {("$ {$ {$ {$ {$ {$ {$ {$ {$ {$ {$ {$ {$ {$ {$ {$ { @Value ("$ {RegCenter.Namespace}") Final String namespace) {return New ZooKeePerRegistryCenter (New ZooKeePerCerFiguration (ServerList, Namespace)); }}JobEventConfig
Paket com.example.demojob.config; import com.dangdang.ddframe.job.event.jobeventconfiguration; import com.dangdang.ddframe.job.event.rdb.jobeventrdbconfiguration; impor org.springframework.context.context org.springframework. * Saat ini, hanya ada satu kelas yang mengimplementasikan antarmuka ini. * Melalui ini, Anda dapat bertahan dari jejak pekerjaan berlari ke DB. * @author shudalei */ @configurationpublic kelas jobeventconfig {@resource private DataSource dataSource; @Bean Public JobEventConfiguration JobEventConfiguration () {return new jobeventrdbConfiguration (DataSource); }}SimpleJobConfig
Paket com.example.demojob.config; import com.dangdang.ddframe.job.config.jobcoreconfiguration; import com.dangdang.ddframe.job.config.simple.simplejobconfiguration; impor com.dangdang.ddframe.simpleJconfiguration; com.dangdang.ddframe.job.lite.api.jobscheduler; impor com.dangdang.ddframe.job.lite.config.liteJobconfiguration; impor com.dangdang.ddframe.job.lite.spring.api.springjobschredululer.job.lite.spring.api.springjobschedululer.job.lite.spring.api.springjobschedululer.job.spring.pringjobsch.schedulul com.dangdang.ddframe.job.reg.zooKeeper.zooKeeperregistrycenter; impor com.example.demojob.job.testsimpleJob; impor org.springframework.beans.factory.annotation.value; impor org.springframework.connannan.bennotation. org.springframework.context.annotation.configuration; import javax.annotation.resource; @configurationpublic kelas SimpleJoBconfig { / *** Pusat Pendaftaran* / @Resource Private ZookeEkerRegistryCenter REGCENTER; / *** Konfigurasi Acara Pekerjaan*/ @resource Private JobEventConfiguration JobEventConfiguration; / *** WeChat Access Token Dapatkan Objek Tugas**/ @resource Private TestSimpleJob SimpleJob; / **** @param cron Tugas Tugas Konfigurasi Cron* @param ShardingTotalCount jumlah Shards Tugas* @param ShardingItemparameters Parameter Tugas Sharding* @return jobscheduler simpleJobscheduler "@Bean (initmethod =" init ") public jobscheduler simpleJobsCheduler" @BAle (initmethod = "init") public jobscheduler simpleJobscheduler " cron, @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 Kelas Penjadwalan Tugas Pekerjaan* @param Cron Tugas Konfigurasi Cron* @param ShardingTotalCount Jumlah Tugas Shards* @param ShardingItemParameters Parameter Tugas Penyelamatan* @return Litejobconfiguration Konfigurasi* / Private LiteJconfiguration GetSfiguration (Private LiteJconfiguration Konfigurasi LitEbkon (Private LiteJconfiguration com.dangdang.ddframe.job.api.simple.simpleJob> jobclass, string final cron, final int shardingtotalcount, string final shardingitemparameters) {return litejobconfiguration .newbuilder (new simpleJobonfiguration (job corboGriguration (new SimpleJobonfiguration (jobcoreconconfiguration .newbuilder (new SimpleJonfiguration (jobcoreconconfiguration (new SimpleJobonfiguration (jobcoreconconfiguration (new -newUrderder (new SimpleJobonfiguration (jobcoreconconfiguration. CROVIGEG.NEWULDERDER (new SimpleJonfiguration (jobcoreconconfiguration (new SimpleJobonfiguration (JobCoreconConfiguration. shardingtotalcount) .shardingItemparameters (shardingitemparameters) .build (), jobclass.getCanonicalname ())) .sepular (true) .build (); }}TestsimpleJob, tugas timer itu sendiri
Paket com.example.demojob.job; import com.dangdang.ddframe.job.api.shardingcontext; import com.dangdang.ddframe.job.api.simple. // Tugasnya adalah untuk menjalankan output konsol 1, 2, 3 setiap 5 detik ... @Override public void mengeksekusi (ShardingContext ShardingContext) {count ++; System.out.println ("Tugas" + Count); }} Akhirnya, instal Zookeeper di bawah Docker
Script instalasi membuat file adalah sebagai berikut
Versi: '2'Services: ZooKeeper01: Image: ZooKeeper Resart: Selalu nama host: ZooKeeper01 Ports: - 2181: 2181 Lingkungan: ZOO_MY_ID: 1 ZOO_SERVERS: Server.1 = 0.0.0: 2888: 3888 Server.2 = ZOOKEER.1 = 0.0.0: 2888: 3888 Server.2 = Zookeer Server.3 = ZooKeeper03: 2888: 3888 ZooKeeper02: Gambar: ZooKeeper Restart: Selalu Nama Host: ZooKeeper02 Ports: - 2182: 2181 Lingkungan: ZOO_MY_ID: 2 ZOO_SERVERS: Server.1 = ZOokeEper01: 28888888888888888888888 Server.3 = ZooKeeper03: 2888: 3888 ZooKeeper03: Gambar: ZooKeeper Restart: Selalu Nama Host: ZooKeeper03 Ports: - 2183: 2181 Lingkungan: ZOO_MY_ID: 3 ZOO_SERVERS: Server.1 = ZOokeEper01: 28888888888888888888888888888888888888 Server.2 = ZooKeeper02: 2888: 3888 Server.3 = 0.0.0.0: 2888: 3888
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.