XXL-JOB 是一个基于Java的分布式任务调度平台

文档

在这里插入图片描述

1、环境需求

  • Maven3+
  • Jdk1.8+
  • Mysql5.7+

2、下载xxl-job

下载地址:

下载解压后得到源码目录

doc/ # 文档目录
   db/
   	tables_xxl_job.sql
xxl-job-admin/ # 调度中心
xxl-job-core/  # 公共依赖
xxl-job-executor-samples/:# 执行器Sample示例(选择合适的版本执行器,可直接使用,也可以参考其并将现有项目改造成执行器)
    xxl-job-executor-sample-springboot: # Springboot版本,通过Springboot管理执行器,推荐这种方式;
    xxl-job-executor-sample-frameless:# 无框架版本;

3、启动调度中心

1、手动执行SQL脚本

doc/db/tables_xxl_job.sql

2、修改日志路径

logback.xml

<property name="log.path" value="logs/xxl-job-admin.log"/>

3、修改配置

application.properties 修改为正确的数据库地址和账号密码

4、启动调度中心

地址:http://localhost:8080/xxl-job-admin

默认登录账号:admin/123456

在这里插入图片描述

4、启动执行器

使用示例项目:xxl-job-executor-sample-springboot

1、修改日志路径

logback.xml

<property name="log.path" value="logs/xxl-job-executor-sample-springboot.log"/>

2、修改配置

application.properties

3、编写任务

@Component
@Slf4j
public class SampleXxlJob {
    /**
     * 1、简单任务示例(Bean模式)
     */
    @XxlJob("demoJobHandler")
    public void demoJobHandler() throws Exception {
        XxlJobHelper.log("XXL-JOB, Hello World.");
        log.info("demoJobHandler log");
        // default success
    }
}

4、启动执行器

默认运行的端口是9999

5、添加任务

在这里插入图片描述

6、问题

1、日志不显示

// 显示
XxlJobHelper.log("XXL-JOB, Hello World.");

// 不显示
log.info("demoJobHandler log");

如果要使用log,可以增加一个过滤器

package com.xxl.job.executor.core.config;

import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.filter.Filter;
import ch.qos.logback.core.spi.FilterReply;
import com.xxl.job.core.context.XxlJobContext;
import com.xxl.job.core.context.XxlJobHelper;

public class XxlJobLogFilter extends Filter<ILoggingEvent> {
    @Override
    public FilterReply decide(ILoggingEvent event) {
        //判断是否是处于xxl-job上下文中(通过xxl-job调用发起的)
        if (XxlJobContext.getXxlJobContext() != null) {
            //调用xxl-job记录日志的方法 不同版本的xxl-job记录日志的api不一样
            XxlJobHelper.log(event.getFormattedMessage());
        }
        //放行
        return FilterReply.NEUTRAL;
    }
}

配置过滤器 logback.xml

<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="com.xxl.job.executor.core.config.XxlJobLogFilter"/>
</appender>

7、参考文章

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐