تقدم هذه المقالة رمز تنفيذ SPRINGBOOT المدمج ELATICJOB TIMER. شاركها معك. التفاصيل كما يلي:
تكوين ملف POM
<؟ XSI: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.xsd"> <soph> 0.0.1-snapshot </version> <packaging> جرة </packaging> <name> demojob </name> <description> مشروع تجريبي لـ Spring Boot </description> <parent> <roupiD> org.springframework.boot </rougiD> <REPERANTERPARPHAPT/> <!-LANEUP PARTER من المستودع-> </inpart> <ferties> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <Project.reporting.outputing> uTF-8 </proport.reporting.outppouting> </properties> <ependencies> <redence> <roupiD> org.springframework.boot </rougeid> <intifactid> spring-boot-starter-web </stifactid> </redenced> <redenced> <roupiD> org.springframework.boot </groupid> <scope> test </scope> </sependency> <!-مرن-JOB-> <REPERENCED> <STIFACTID> مرن-job-common-core </inchifactid> <rouplyid> com.dangdang </rougiD> <splected> 2.1.5 </version> <roupl> com.dangdang </rougeid> <soph> 2.1.5 </version> </sependency> <reperency> <Chintifactid> مرن-Job-Lite-spring </artifactid> <roupiD> com.dangdang </rougeid> <splement> <roughid> com.dangdang </rougeid> <soph> 2.1.5 </version> </sependency> <!-mariaDB-> <redence> <roupiD> org.mariadb.jdbc </groupid> </attifactid> mariadb-java-client </artifactid> <roughid> com.alibaba </rougeid> <StifactId> druid-spring-boot-starter </shintifactid> <splection> 1.1.9 </splement <soph> 1.0.5 </version> </sependency> <redency> <roupeD> com.baomidou </rougeid> <StifactId> mybatis-plus </shintifactid> <الإصدار> 2.1.9 </verspriing> </dependency> </vensidencial <StifactId> Spring-Boot-Maven-Plugin </stifactid> </sultwing> </sults> </build> </project>
تكوين ملف yaml (يمكن أيضًا استخدام Application.properties)
# تكوين تكوين بيانات مصدر بيانات الربيع: DataSource: النوع: com.alibaba.druid.pool.druiddatasource class-class-name: org.mariadb.jdbc.driver الاسم: مرن-Job-event url: jdbc: mariadb: //127.0.0.1: 3306/event التحقق من الصحة: SELECT 1 ORIGALESIVE: 10 MINIDLE: 10 MAXACATION: 200 MINEVICTABLEEDLETEMEMILIS: 180000 TESTONBOOR: FALSE TESTWHILEIDLE: TRUE DEMOVABANDONED: TRUE REMOVEABANDONDTIMEOT: 1800 logabandoned: true poolpreparedStatements: true MAXOPENPREPERSETS: 100 مساحة الاسم: hulk_order_task# تكوين قواعد المؤقت SimpleJob: cron: 0/5 * * * *؟ ShardingToTalCount: 1 ShardingItemParameters: 0 = 1
ابدأ في كتابة رمز
registrycenterconfig
package com.example.demojob.config ؛ استيراد com.dangdang.ddframe.job.reg.zookeeper.zookeeperconfiguration ؛ استيراد com.dangdang.ddframe.job.reg.zookeeper.zookeeper.zookeeperregistry ؛ org.springframework.boot.autoconfigure.condition.conditionalOnexPression ؛ استيراد org.springframework.context.annotation.bean ؛ compontation org.springframework.context.annotation.configuration * Author Shudalei */@@configuration@intemalOnexPression ("$ {regcenter.serverlist} ' Value ("$ {regcenter.namespace}") مساحة اسم السلسلة النهائية) {إرجاع new ZookEperRegistryCenter (New ZookeeperConfiguration (Serverlist ، مساحة الاسم)) ؛ }}JobeventConfig
package com.example.demojob.config ؛ استيراد com.dangdang.ddframe.job.event.jobeventConconfiguration ؛ استيراد com.dangdang.ddframe.job.event.rdb.jobeventrdbconfiguration org.springframework.context.annotation.configuration ؛ استيراد javax.annotation.resource ؛ استيراد javax.sql.datasource ؛/** * إذا كنت ترغب في كتابة محتويات المهمة التي تعمل في DB ، نحتاج إلى استخدام بنياء آخر ، * في الوقت المناسب ، تحديد الوظيفة الخاصة بك. * حاليًا ، هناك فئة واحدة فقط تنفذ هذه الواجهة. * من خلال هذا ، يمكنك أن تستمر في آثار الوظيفة التي تعمل إلى DB. * Author Shudalei */ @ConfigurationPublic Class JobeventConfig {resource private datasource dataSource ؛ bean public jobeventConfiguration JobeventConfiguration () {return new JobeventRdBConfiguration (dataSource) ؛ }}SimpleJobConfig
package com.example.demojob.config ؛ استيراد com.dangdang.ddframe.job.config.jobcoreconfiguration ؛ استيراد com.dangdang.ddframe.job.config.simple.simpleJobConfiguration com.dangdang.ddframe.job.lite.api.jobscheduler ؛ import com.dangdang.ddframe.job.lite.config.litejobconfiguration ؛ import com.dangdang.dddframe.job.lite.spring.api.springjobscheduler ؛ com.dangdang.ddframe.job.reg.zookeeper.zookeeperregistryCenter ؛ import com.example.demojob.job.testsimplejob ؛ importorspramewext.bean.beans.factory.annotation.value ؛ org.springframework.context.annotation.configuration ؛ استيراد javax.annotation.resource ؛ configurationpublic class simplejobconfig { / *** مركز التسجيل* / resource private zookeeperregistry rescenter ؛ / *** تكوين حدث الوظيفة*/ Resource private JobeventConfiguration JobeventConfiguration ؛ / *** WeChat Access Token Get Task Object**/ Resource TestSimpleJob SimpleJob ؛ / ***** param cron cron timed cron configuration* param shardingtalcount عدد من شواهد المهمة* param ShardingItemParameters معلمات Sharding Task* @return jobscheduler scheduler*/ @bean (initmethod = "init") Cron ، Value ("$ {simplejob.shardingtalcount}") Final int ShardingTalCount ، @Value ("$ {simplejob.shardingitemparameters}") Cron ، ShardingTalcount ، ShardingitemParameters) ، JobeventConfiguration) ؛ } / ***** param jobclass فئة جدولة المهام* param cron cron التكوين cron time* param shardingtalcount عدد شركات المهمة* @param shardingitemparameters المهام معلمات getlitegconfigation <stendjObconfiguration com.dangdang.ddframe.job.api.simple.simplejob> jobclass ، السلسلة النهائية cron ، int final shardingtalcount ، سلسلة نهائية ShardingItemParameters) ShardingTalCount) .ShardingItemParameters (ShardingItemParameters) .Build () ، Jobclass.getCanonicalName ()). overwrite (true) .build () ؛ }}TestSimplejob ، مهمة المؤقت نفسها
package com.example.demojob.job ؛ import com.dangdang.ddframe.job.api.shardingContext ؛ import com.dangdang.ddframe.job.api.simple.simplejplejtiMplejObpliceplicoB ؛ // المهمة هي تنفيذ إخراج وحدة التحكم 1 ، 2 ، 3 كل 5 ثوان ... Override Public Void execute (ShardingContext ShardingContext) {count ++ ؛ System.out.println ("Task" + count) ؛ }} أخيرًا ، قم بتثبيت Zookeeper تحت Docker
ملف نصي التثبيت هو على النحو التالي
الإصدار: '2'services: ZookeEper01: الصورة: Zookeeper Retart: دائمًا اسم المضيف: ZookeEper01 المنافذ: - 2181: 2181 البيئة: zoo_my_id: 1 zoo_servers: server.1 = 0.0.0.0: 2888: 3888 server.2 = zookeeper02: 2888: 3888 server.3 = zookeeper03: 2888: 3888 ZookeEper02: الصورة: zookeeper إعادة تشغيل: اسم المضيف دائمًا: zookeeper02 المنافذ: - 2182: 2181 البيئة: zoo_my_id: 2 zoo_servers: server.1 = zookeeper01: 2888: 3888 server. server.3 = zookeeper03: 2888: 3888 ZookeEper03: الصورة: zookeeper إعادة تشغيل: اسم المضيف دائمًا: zookeeper03 المنافذ: - 2183: 2181 البيئة: zoo_my_id: 3 zoo_servers: server.1 = zookeeper01: 2888 Server.3 = 0.0.0.0: 2888: 38888
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.