分布式任务调度平台XXL-JOB学习笔记-helloworld运行

环境:win10 eclipse java17 mysql8.0.17 xxl-job 2.4

源码:https://github.com/xuxueli/xxl-job/

  1. 导入时按Existing Maven Projects导入,先导入xxl-job-admin(管理平台)和xxl-job-executor-sample-springboot(通过springboot管理的执行器实例)。

如果导入时速度非常慢,或者报错如 Plugin 'org.apache.maven.plugins:maven-resources-plugin:2.6' not found;之类的,很可能是maven没有设置好。打开 Eclipse-Window-Preferences

其中settings.xml中需要修改< settings >标签下的localRepository,并给mirrors标签下添加一个mirror标签,内容是阿里云的网址。

xml 复制代码
  <!--配置maven本地jar仓库,即jar包保存在本机的路径-->
  <localRepository>D:\eclipse\maven\localRespository</localRepository>
... 
      <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
        <url>https://maven.aliyun.com/nexus/content/groups/public</url>
      </mirror>

一般这样修改后就不会报错了,必要时可以中止当前进程,重启eclipse再重新导入。

  1. 导入后需要修改一下xxl-job-admin的application.properties,主要是修改datasource,以正确连接数据库:
shell 复制代码
### xxl-job, datasource
spring.datasource.url=(这里一般不用改除非有特殊设置)
spring.datasource.username=(改,比如root)
spring.datasource.password=(改,你的密码)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

### 下面是报警用的邮箱,如果需要可以改
### xxl-job, email
spring.mail.host=smtp.qq.com
spring.mail.port=25
spring.mail.username=xxx@qq.com
spring.mail.from=xxx@qq.com
spring.mail.password=xxx
  1. 找到xxl-job-2.4.0\doc\db\tables_xxl_job.sql,使用source导入本地数据库

  2. 分别使用maven build生成xxl-job-admin和xxl-job-executor-sample-springboot。Goals可以随便填,比如

shell 复制代码
clean package -D maven.test.skip=true
  1. 生成之后先用Run As Spring boot App启动xxl-job-admin,然后启动执行器。
shell 复制代码
java -jar xxx.jar

如果先启动执行器,执行器找不到admin会报错。

  1. 打开 http://localhost:8080/xxl-job-admin/,用户名admin,密码123456

    这里我做了一些操作,所以报表页面会多一些东西。原始状态下只有1个任务,1个执行器,调度次数0。
  2. 新建2个测试任务,参考下面填写配置参数


    填完是这个样子:
  3. 点击右侧操作,各执行一次,可以看到调度日志中已有了信息

    如果执行失败了,看一下执行器是不是写错了注册方式。我一开始改成了手动录入,写了http://127.0.0.1:8081,发现是错的。改成自动注册就可以了。此外,AppName对应的是执行器application.properties中的xxl.job.executor.appname,如果那边改了,这里也要改。

    现在看一下执行日志。

bean模式的执行日志:

对应的代码在:

java 复制代码
    /**
     * 1、简单任务示例(Bean模式)
     */
    @XxlJob("demoJobHandler")
    public void demoJobHandler() throws Exception {
        XxlJobHelper.log("XXL-JOB, Hello World.");

        for (int i = 0; i < 5; i++) {
            XxlJobHelper.log("beat at:" + i);
            TimeUnit.SECONDS.sleep(2);
        }
        // default success
    }

再看一下GLUE(Java)模式的日志:

GLUE模式表示能在线修改

在ide里修改即可:

相关推荐
皮皮林55110 小时前
拒绝写重复代码,试试这套开源的 SpringBoot 组件,效率翻倍~
java·spring boot
茶杯梦轩2 天前
从零起步学习RabbitMQ || 第三章:RabbitMQ的生产者、Broker、消费者如何保证消息不丢失(可靠性)详解
分布式·后端·面试
用户908324602733 天前
Spring AI 1.1.2 + Neo4j:用知识图谱增强 RAG 检索(上篇:图谱构建)
java·spring boot
茶杯梦轩3 天前
从零起步学习RabbitMQ || 第二章:RabbitMQ 深入理解概念 Producer、Consumer、Exchange、Queue 与企业实战案例
服务器·后端·消息队列
回家路上绕了弯4 天前
深入解析Agent Subagent架构:原理、协同逻辑与实战落地指南
分布式·后端
用户8307196840824 天前
Spring Boot 集成 RabbitMQ :8 个最佳实践,杜绝消息丢失与队列阻塞
spring boot·后端·rabbitmq
Java水解4 天前
Spring Boot 视图层与模板引擎
spring boot·后端
Java水解4 天前
一文搞懂 Spring Boot 默认数据库连接池 HikariCP
spring boot·后端
洋洋技术笔记4 天前
Spring Boot Web MVC配置详解
spring boot·后端
初次攀爬者5 天前
Kafka 基础介绍
spring boot·kafka·消息队列