บทความนี้แนะนำรหัสการใช้งานของตัวจับเวลา elaticjob แบบรวม Springboot แบ่งปันกับคุณ รายละเอียดมีดังนี้:
การกำหนดค่าไฟล์ POM
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/ XSI: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" <Sersion> 0.0.1-SNAPSHOT </เวอร์ชัน> <packaging> jar </packaging> <name> demojob </name> <scription> โครงการสาธิตสำหรับการบูตฤดูใบไม้ผลิ </คำอธิบาย> <carent> <roupid> org.springframework.boot </groupid> <!-การค้นหาพาเรนต์จากที่เก็บ-> </parent> <properties> <project.build.sourceencoding> UTF-8 </project.build.sourceencoding> <Project.Reporting.outputUning> UTF-8 </project.reporting.UtputInging <การพึ่งพา> <การพึ่งพา> <roupId> org.springframework.boot </groupid> <ratifactid> Spring-Boot-Starter-Web </Artifactid> </dercture> <การพึ่งพาอาศัย> <loupid> org.springframework.boot </groupid> </permentency> <!-Elastic-Job-> <การพึ่งพา> <ratifactId> Elastic-Job-Common-Core </artifactid> <sdroupId> com.dangdang </groupid> <version> 2.1.5 </version> </การพึ่งพาอาศัยกัน> <Sersion> 2.1.5 </Sident> </การพึ่งพา> <การพึ่งพา> <RATIFACTID> ELASTIC-JOB-LITE-SPRING </ArtIfactId> <sdermId> com.dangdang </roupid> <version> 2.1.5 </SideFactid> <Sersion> 2.1.5 </Sident> </การพึ่งพา> <!-MariADB-> <การพึ่งพา> <GroupId> org.mariadb.jdbc </groupId> <ratifactid> mariadb-java-client </artifactid> <version> 1.5.4 </เวอร์ชัน> <ArtIfactId> druid-spring-boot-starter </artifactid> <persion> 1.1.9 </เวอร์ชัน> </การพึ่งพา> <!-mybatis plus-> <cendency> <roupid> com.baomidou </groupid> <การพึ่งพา> <roupId> com.baomidou </groupId> <ratifactid> mybatis-plus </artifactid> <version> 2.1.9 </เวอร์ชัน> </การพึ่งพา> </การพึ่งพา> <ArtIfactId> Spring-Boot-Maven-Plugin </artifactid> </plugin> </plugins> </uffer
การกำหนดค่าไฟล์ yaml (ยังสามารถใช้ application.properties)
# กำหนดค่าแหล่งข้อมูลการกำหนดค่าสปริง: DataSource: ประเภท: com.alibaba.druid.pool.druiddataSource driver-class-name: org.mariadb.jdbc.driver ชื่อ: url elastic-job-elastic: listing: elastic ValidationQuery: เลือก 1 ค่าเริ่มต้น: 10 minidle: 10 maxactive: 200 minevictableidletimeMillis: 180000 testonborrow: เท็จ testhariledle: true removeabandoned: true removeAbandonedTimeOut: 1800 logabonded เนมสเปซ: hulk_order_task# กำหนดค่ากฎตัวจับเวลา SimpleJob: cron: 0/5 * * *? Shardingtotalcount: 1 ShardingItemParameters: 0 = 1
เริ่มเขียนรหัส
RegistryCenterConfig
แพ็คเกจ com.example.demojob.config; นำเข้า com.dangdang.ddframe.job.reg.zookeeper.zookeeperconfiguration; นำเข้า com.dangdang.ddframe.job.reg.zookeeper.zookeeper. org.springframework.boot.autoconfigure.condition.conditionalonexpression; นำเข้า org.springframework.context.annotation.bean; นำเข้า org.springframework.context.annotation.configuration; * @author shudalei */@configuration@conditionalOnexpression ("'$ {regcenter.serverlist}'. ความยาว ()> 0") ระดับสาธารณะ RegistryCenterConfig {@Bean (initMethod = "init") Public @Value ("$ {regCenter.namespace}") สตริง namespace สุดท้าย) {ส่งคืน ZooKeeperRegistryCenter ใหม่ (ZooKeeperConFiguration ใหม่ (ServerList, Namespace)); -JobEventConfig
แพ็คเกจ com.example.demojob.config; นำเข้า com.dangdang.ddframe.job.event.jobeventconfiguration; นำเข้า com.dangdang.ddframe.job.event.rdb.jobeVentrdbconfiguration; org.springframework.context.annotation.configuration; นำเข้า Javax.annotation.resource; นำเข้า Javax.sql.datasource;/** * หากคุณต้องการเขียนเนื้อหาของงานที่ทำงานลงใน DB * ปัจจุบันมีคลาสเดียวที่ใช้อินเทอร์เฟซนี้ * ผ่านสิ่งนี้คุณสามารถคงอยู่ร่องรอยของงานที่ทำงานไปยัง DB * @author shudalei */ @configurationpublic คลาส jobeVentConfig {@Resource DataSource DataSource ส่วนตัว; @Bean สาธารณะ JobEventConfiguration JobEventConfiguration () {ส่งคืน JobEventRDBConfiguration ใหม่ (DataSource); -simplejobconfig
แพ็คเกจ com.example.demojob.config; นำเข้า com.dangdang.ddframe.job.config.jobcoreconfiguration; นำเข้า com.dangdang.ddframe.job.config.simple.simplejobconfiguration; com.dangdang.ddframe.job.lite.api.jobscheduler; นำเข้า com.dangdang.ddframe.job.lite.config.litejobconfiguration; นำเข้า com.dang.ddframe.job.lite.spring.api.springjobschedjobsched com.dangdang.ddframe.job.reg.zookeeper.zookeeperregistryCenter; นำเข้า com.example.demojob.job.testsimplejob นำเข้า org.springframework.beans.factory.annotation.value; org.springframework.context.annotation.configuration; นำเข้า Javax.annotation.resource; @configurationPublic คลาส SimpleJobConfig { / *** ศูนย์การลงทะเบียน* / @Resource ZooKeeperEgistryRegistryCenter / *** การกำหนดค่าเหตุการณ์งาน*/ @Resource ส่วนตัว JobEventConfiguration JobEventConfiguration; / *** โทเค็นการเข้าถึง weChat รับวัตถุงาน**/ @Resource Private TestSimpleJob SimpleJob; / **** @param cron tamed task การกำหนดค่า cron* @param shardingtotalcount จำนวนงาน Shards* @param ShardingItemParameters งานงาน Sharding พารามิเตอร์* @return JobsCheduler Task Task (@Bean (initMethod = "Init" Final String cron, @Value ("$ {SimpleJob.ShardingTotalcount}") สุดท้าย int ShardingTotalcount, @Value ("$ {SimpleJob.ShardingItemParameters}" Cron, Shardingtotalcount, ShardingItemParameters), JobEventConfiguration); } / **** @param JobClass Task Tamplemaling Class* @param cron tamed task การกำหนดค่า cron* @param Shardingtotalcount จำนวนงาน Shards* @param SharditemParameters งาน com.dangdang.ddframe.job.api.simple.simplejob> Jobclass, cron สตริงสุดท้าย, int int final shardingtotalcount, สตริงสุดท้าย sharditemparameters) {return litejobconfiguration .newbuilder (ใหม่ simplejobconfiguration Shardingtotalcount). ShardItemParameters (ShardingItemParameters) .build (), Jobclass.getCanonicalName ())) .Overwrite (จริง) .build (); -TestsimpleJob งานจับเวลาเอง
แพ็คเกจ com.example.demojob.job; นำเข้า com.dangdang.ddframe.job.api.shardingcontext; นำเข้า com.dangdang.ddframe.job.api.simple.simplejob; นำเข้า org.springframework.stereotype.component // ภารกิจคือการดำเนินการเอาต์พุตคอนโซล 1, 2, 3 ทุก ๆ 5 วินาที ... @Override โมฆะสาธารณะดำเนินการ (ShardingContext ShardingContext) {นับ ++; System.out.println ("งาน" + นับ); - ในที่สุดติดตั้ง Zookeeper ภายใต้ Docker
ไฟล์สคริปต์การติดตั้งคือไฟล์ดังนี้
เวอร์ชัน: '2'Services: ZooKeeper01: ภาพ: Zookeeper Retart: HostName เสมอ: Zookeeper01 พอร์ต: - 2181: 2181 สภาพแวดล้อม: ZOO_MY_ID: 1 ZOO_SERVERS: Server.1 = 0.0.0.0: 2888: 3888 Server.2 = Zookeeper02: 3888888888 Server.3 = Zookeeper03: 2888: 3888 ZooKeeper02: รูปภาพ: Zookeeper Retart: HostName เสมอ: Zookeeper02 พอร์ต: - 2182: 2181 สภาพแวดล้อม: ZOO_MY_ID: 2 ZOO_SERVERS: Server.1 = Zookeker01: 2888 Server.3 = Zookeeper03: 2888: 3888 Zookeeper03: รูปภาพ: Zookeeper Retart: HostName เสมอ: Zookeeper03 พอร์ต: - 2183: 2181 สภาพแวดล้อม: ZOO_MY_ID: 3 ZOO_SERVERS: Server.1 = Zookeeper01: 2888 Server.3 = 0.0.0.0: 2888: 38888
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น