1. 说明

在平台中集成了XXL-JOB作为平台的任务调度中心。
XXL-JOB 是一个分布式的调度中心。

上图式调度的一个拓扑结构

在图中有两个角色

1.调度中心
这个调度中心负责执行器注册,进行任务调度,查看任务调度情况等。

2.执行器

执行器负责将当前的执行器注册到调度中心,调度中心负责进行统一调度,因此,只需要一个调度中心,就可以执行不同的微服务上面的任务调度。

2. 实现调度中心步骤

在实际部署时我们需要修改调度中心的配置。

比如服务的端口号和数据库等配置。

修改完成后,打包,运行 调度中心。

2.1 给微服务添加执行器

如果微服务应用需要进行任务调度,那么需要添加执行器,这样任务调度器就可以调度执行器进行任务执行。

2.1.1 添加pom.xml配置。

<dependency>
            <groupId>com.redxun</groupId>
            <artifactId>jpaas-job-spring-boot-starter</artifactId>
        </dependency>

2.1.2 在application.properties 中增加配置

xxl-job:
  admin:
    admin-addresses: http://127.0.0.1:7878/job
  executor:
    app-name: bpm-job #默认为 xxl-job-executor
    access-token: #默认为空
    log-path: logs/applogs/xxl-job/jobhandler #默认为 logs/applogs/xxl-job/jobhandler
    log-retention-days: 10 #默认为 10
    ip: #默认为空
    port: 7676 #默认为 9999

在这里需要指定调度中心的路径。
指定app-name: 这个名称很重要需要在添加执行器的时候使用到。
log-path 是应用的的执行日志路径。
port:可以指定执行器的端口
ip:可以是微服务的所在的IP地址。

2.1.3 在调度中心添加执行器

在这里添加一个执行器,注意 app-name 需要和上面提到的执行的app-name 保持一致。

注册方式可以使用自动注册。

添加完成后,我们可以启动 执行器所在的微服务应用。

如上图,可以看到执行器注册上来了。

2.2 开发调度任务

在上面的步骤完了后,我们需要开发我们的定时任务。

我们在我们的微服务应用中开发我们的代码。

2.1.1 任务的代码开发

import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;

@Component
public class DemoJobHandler extends IJobHandler {

    @Override
    @XxlJob("demoJobHandler")
    public ReturnT<String> execute(String param) throws Exception {
        System.err.println("demo");
        return ReturnT.SUCCESS;
    }
}

这里我们开发一个简单的调度任务。

@XxlJob(“demoJobHandler”)
这个很重要,在调度配置的地方可以使用到。

param: 标识执行器参数,在配置调度的时候可以进行配置。

execute 需要根据实际的情况放回 ReturnT 数据。

2.2.1 配置调度任务

在任务管理操作界面中,我们可以添加我们的调度任务。

这里主要配置:

1.执行器
2.调度周期
3.需要执行的具体任务

我们可以进行点击执行一次进行调试。

可以看到调式情况。

我们可以看到从调度中心传过来的参数,当任务执行逻辑没问题时,我们可以启用这个调度。

点击操作,点击启动。

如上图,可以看到这个任务处于运行状态。

如此,统一任务调度中心的整个实现过程就完成了。

文档更新时间: 2022-04-07 11:55   作者:zhuyunyun