分布式任务平台XXL-JOB

参考:https://www.cnblogs.com/ysocean/p/10541151.html

码云:https://gitee.com/xuxueli0323/xxl-job

1、数据库导入 mysql版本5.7

2、修改调度中心配置文件

/xxl-job/xxl-job-admin/src/main/resources/application.properties

配置数据库的地址、用户名、密码
配置报警邮箱

该工程是一个springboot项目,
我们只需要在IDEA中执行 XxlJobAdminApplication 类即可运行该工程:

在浏览器输入 http://localhost:8080/xxl-job-admin
用户名密码admin 123456

3、执行器项目


 springboot 版本的执行器为例来介绍
3.1 在创建好的springboot 项目的pom.xml 文件中添加如下依赖:
<dependency>
            <groupId>com.xuxueli</groupId>
            <artifactId>xxl-job-core</artifactId>
            <version>2.1.1-SNAPSHOT</version>
        </dependency>

3.2 在创建好的springboot 项目的配置文件 application.yml 添加如下配置:

xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin

### xxl-job executor address
xxl.job.executor.appname=xxl-job-executor-sample
xxl.job.executor.ip=
xxl.job.executor.port=9999

### xxl-job, access token
xxl.job.accessToken=

### xxl-job log path
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
### xxl-job log retention days
xxl.job.executor.logretentiondays=-1

有个BUG 添加配置解决

spring.freemarker.request-context-attribute=request
3.3

载入配置文件

在项目中创建 XxlJobConfig.java 文件:

创建任务JobHandler

  在项目中创建一个Handler,用于执行我们想要执行的东西,这里我只是简单的打印一行日志:

  XXL-JOB, Hello World!!!

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

import java.util.concurrent.TimeUnit;


/**
 * 任务Handler示例(Bean模式)
 *
 * 开发步骤:
 * 1、继承"IJobHandler":“com.xxl.job.core.handler.IJobHandler”;
 * 2、注册到Spring容器:添加“@Component”注解,被Spring容器扫描为Bean实例;
 * 3、注册到执行器工厂:添加“@JobHandler(value="自定义jobhandler名称")”注解,注解value值对应的是调度中心新建任务的JobHandler属性的值。
 * 4、执行日志:需要通过 "XxlJobLogger.log" 打印执行日志;
 *
 * @author xuxueli 2015-12-19 19:43:36
 */
@JobHandler(value="demoJobHandler")
@Component
public class DemoJobHandler extends IJobHandler {

    @Override
    public ReturnT<String> execute(String param) throws Exception {
        XxlJobLogger.log("XXL-JOB, Hello World.愉快的跑起来了");
        System.out.println("愉快的跑起来了");
        for (int i = 0; i < 5; i++) {
            XxlJobLogger.log("beat at:" + i);
            TimeUnit.SECONDS.sleep(2);
        }
        return SUCCESS;
    }

}

注意:这里有个注解 @JobHandler(value="demoJobHandler"),对于 value的值,我们会在下面进行相应配置。

4、进入调度中心

配置执行器

 配置完执行器以及任务,我们只需要启动该任务,便可以运行了。

注意:在项目中,只有通过 XxlJobLogger.log() 代码才能将日志打印到上面。


原文地址:https://www.cnblogs.com/lyon91/p/11194988.html