本稿の最初に、目的
この記事では、spring-・ブート・インテグレーションと弾の仕事意志に関係するように、弾性ジョブ・コンソールでタスク管理タスクを構築するためにプラットフォームを監視しながら分片sharding
中心的な概念や設定項目などは、文書の公式ホームページを参照することができ、本論文すぐに、彼らが起動し、定期的なタスクを聞かせて、送信元アドレスを持つテキストの最後にプロジェクトを構築しています。
二、弾仕事関連
中国の弾仕事公式サイトelasticjob.io/index_zh.ht ...
githubのアドレスgithub.com/elasticjob / ...
第三に、このプロジェクトは、定期的なタスクを設定しました
- 春Initializrでブートプロジェクトを作成し、頼ることができるだけでウェブを追加し、弾性ジョブ-LITE-コアコアパッケージを追加
<dependency>
<groupId>com.dangdang</groupId>
<artifactId>elastic-job-lite-core</artifactId>
<version>2.1.5</version>
</dependency>
复制代码
- 春弾性ジョブ-LITE-春のパッケージに統合することを追加します。
<dependency>
<groupId>com.dangdang</groupId>
<artifactId>elastic-job-lite-spring</artifactId>
<version>2.1.5</version>
</dependency>
复制代码
- MyElasticJobのような定期的なタスクを書いて、インターフェイスを実装SimpleJob
package com.morning.morningshiro.jobs;
import com.dangdang.ddframe.job.api.ShardingContext;
import com.dangdang.ddframe.job.api.simple.SimpleJob;
import com.morning.morningshiro.dao.entity.UserEntity;
import javax.annotation.Resource;
import java.util.List;
public class MyElasticJob implements SimpleJob {
@Override
public void execute(ShardingContext context) {
// 根据分片项执行任务
System.out.println(context.toString());
switch (context.getShardingItem()) {
case 0:
break;
case 1:
// do something by sharding item 1
break;
case 2:
// do something by sharding item 2
break;
// case n: ...
}
}
}
复制代码
- タスクリスナクラスJobListener
package com.morning.morningshiro.jobs;
import com.dangdang.ddframe.job.executor.ShardingContexts;
import com.dangdang.ddframe.job.lite.api.listener.ElasticJobListener;
public class JobListener implements ElasticJobListener {
@Override
public void beforeJobExecuted(ShardingContexts shardingContexts) {
System.out.println(shardingContexts.toString());
}
@Override
public void afterJobExecuted(ShardingContexts shardingContexts) {
System.out.println(shardingContexts.toString());
}
}
复制代码
- ばね弾性job.xmlファイルの調製
resources
ファイル
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:reg="http://www.dangdang.com/schema/ddframe/reg"
xmlns:job="http://www.dangdang.com/schema/ddframe/job"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.dangdang.com/schema/ddframe/reg
http://www.dangdang.com/schema/ddframe/reg/reg.xsd
http://www.dangdang.com/schema/ddframe/job
http://www.dangdang.com/schema/ddframe/job/job.xsd
">
<!--配置作业注册中心 -->
<!--namespace为注册到zk的名称-->
<reg:zookeeper id="regCenter" server-lists="127.0.0.1:2181" namespace="dd-job" base-sleep-time-milliseconds="1000"
max-sleep-time-milliseconds="3000" max-retries="3"/>
<bean id="myElasticJob" class="com.morning.morningshiro.jobs.MyElasticJob"/>
<!-- 配置作业-->
<!--overwrite 修改后覆盖原有定时任务-->
<!--id 任务ID-->
<job:simple id="job1" job-ref="myElasticJob" overwrite="true" registry-center-ref="regCenter"
cron="0/30 * * * * ?" sharding-total-count="4" sharding-item-parameters="0=USER,1=TWO" description="test">
<job:listener class="com.morning.morningshiro.jobs.JobListener"/>
</job:simple>
</beans>
复制代码
- XML設定ファイルを導入するクラスを開始します
@SpringBootApplication
@ImportResource(locations = {"classpath:spring-elastic-job.xml"})
public class MorningShiroApplication {
public static void main(String[] args) {
SpringApplication.run(MorningShiroApplication.class, args);
}
}
复制代码
- ビュータスクノードZK
第四に、コンソールを設定
弾性ジョブ・コンソールプロジェクトによって実行される監視タスクを実行するために、github.com/elasticjob / ...
ダウンロード工学は、輸入アイデアは、あなたが開始する前に、フレームワークの春バージョンは親ポンポンファイルで修正し、弾性ジョブ-LITE-コンソールプロジェクトを開始し5.1.9.RELEASE
、その後、ブラウザを起動し、入力して、localhost:8899
コンソールを入力します。
4.1コンソールインターフェイス、サービスアドレスZKを設定します
4.2ビューTaskクラステーブル
4.3サービスのリスト表示
4.4タスクを変更
ZKクラスタセットアップビューについて:juejin.im/post/5cee0d ...
送信元アドレス:github.com/alwyngo/mor ...