Elastic-job-lite объединяет платформу spring-boot и мониторинга для создания

Java

1. Цель данной статьи

В этой статье мы интегрируем Elastic-job с spring-boot и создадим платформу мониторинга задач с помощью elastic-job-console для управления задачами.分片shardingДля основных понятий, таких как элементы конфигурации и элементы конфигурации, вы можете обратиться к официальной документации веб-сайта.Эта статья предназначена в основном для быстрой сборки проекта, чтобы запланированные задачи можно было запускать в первую очередь, а адрес исходного кода прикреплялся в конце. статьи.

2. Эластичная работа, связанная с работой

Официальный сайт Elastic-job на китайском языкеэластичная работа.IO/index_this.contract...

гитхаб-адресGitHub.com/эластик-работа/…

3. Создайте проект задачи на время

  1. Создайте загрузочный проект с помощью Spring Initializr, просто добавьте веб-зависимости, а затем добавьте базовый пакет elastic-job-lite-core.
<dependency>
	<groupId>com.dangdang</groupId>
	<artifactId>elastic-job-lite-core</artifactId>
	<version>2.1.5</version>
</dependency>
  1. Интеграция с Spring для добавления пакета elastic-job-lite-spring
<dependency>
	<groupId>com.dangdang</groupId>
	<artifactId>elastic-job-lite-spring</artifactId>
	<version>2.1.5</version>
</dependency>
  1. Напишите класс запланированных задач 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: ...
        }
    }
}
  1. Класс прослушивателя заданий 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());
    }
}
  1. Напишите файл spring-elastic-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>
  1. Класс запуска представляет файл конфигурации xml
@SpringBootApplication
@ImportResource(locations = {"classpath:spring-elastic-job.xml"})
public class MorningShiroApplication {

	public static void main(String[] args) {
		SpringApplication.run(MorningShiroApplication.class, args);
	}

}
  1. узел задачи просмотра zk

В-четвертых, конструкция консоли

Мониторинг выполнения задач через проект elastic-job-console,GitHub.com/эластик-работа/…

Загрузите проект, импортируйте Idea, чтобы запустить проект elastic-job-lite-console, и измените версию Spring Framework в родительском файле pom, чтобы она была5.1.9.RELEASE, а затем запустите, ввод браузераlocalhost:8899для входа в консоль.

4.1 Консольный интерфейс, настройка адреса службы zk

4.2 Просмотр таблицы классов задач

4.3 Просмотр списка услуг

4.4 Изменение задач


Представление о построении кластера zk:nuggets.capable/post/684490…

Адрес источника:GitHub.com/AL WY NGO/Default…