使用XXL-JOB完成需求:添加数据库一条记录的同时指定时间延时删除

1 下载XXL-JOB代码测试使用

1-1 下载代码

XXL-JOB官网 :https://www.xuxueli.com/xxl-job/#1.1%20%E6%A6%82%E8%BF%B0
源码地址:https://github.com/xuxueli/xxl-job

1-2 建调度数据库

1-2-1 执行sql文件

sql文件位置:

/xxl-job/doc/db/tables_xxl_job.sql

结果:会出现8张表。
使用XXL-JOB完成需求:添加数据库一条记录的同时指定时间延时删除_第1张图片

1-2-2 修改调度中心配置于数据库连接

配置文件位置:

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

修改代码:

### 调度中心JDBC链接:链接地址请保持和创建的调度数据库的地址一致
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=改成自己的
spring.datasource.password=改成自己的
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

1-2-3 测试

运行代码:
使用XXL-JOB完成需求:添加数据库一条记录的同时指定时间延时删除_第2张图片
访问调度中心地址:http://localhost:8080/xxl-job-admin (该地址执行器将会使用到,作为回调地址)
默认登录账号 “admin/123456”
得到如下界面:
使用XXL-JOB完成需求:添加数据库一条记录的同时指定时间延时删除_第3张图片

2 使用XXL-JOB

2-1 新建任务(注意参数设置)

参数设置:
使用XXL-JOB完成需求:添加数据库一条记录的同时指定时间延时删除_第4张图片
结果:
在这里插入图片描述

2-2 “GLUE模式(Java)” 任务开发

点击 任务管理——>GLUE IDE
使用XXL-JOB完成需求:添加数据库一条记录的同时指定时间延时删除_第5张图片
添加代码:

package com.xxl.job.service.handler;

import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.IJobHandler;

public class DemoGlueJobHandler extends IJobHandler {

	@Override
	public void execute() throws Exception {
		XxlJobHelper.log("李瑞萱测试任务1输出内容");
	}

}

2-3 触发执行或cron定时执行

  • 点击 触发执行一次
    使用XXL-JOB完成需求:添加数据库一条记录的同时指定时间延时删除_第6张图片
  • cron定时执行
    我设置的是没显示执行一次,想快速看到日志可以每秒执行一次
    使用XXL-JOB完成需求:添加数据库一条记录的同时指定时间延时删除_第7张图片

2-4 查看日志日志控制台

日志:
在这里插入图片描述
日志控制台:点击操作按钮右边倒三角可查看执行日志,如下
使用XXL-JOB完成需求:添加数据库一条记录的同时指定时间延时删除_第8张图片
结果:日志控制台打印了我写的log。

3 操作

  • 配置执行器
  • 新建任务——>编辑任务——>编写GLUE代码
  • 启动任务
  • 触发一次调度(手动触发)
  • 查看调度日志——>查看执行日志

4 完成需求

4-1 需求分析

需求:加入记录的同时获取到了存活时间,存活时间后,自动删除记录。
前置条件:已有 加入记录接口、删除记录接口。
具体实现:
1)具体任务:
检索数据库中所有数据表的所有数据,计算时间,超过存活时间就删除记录。

  • 存入时,获取 存入时间;
  • 通过 当前时间 和 存入时间 判断是否删除;
    • 是:删除记录。
  • 结束。

2)可行性分析:

  • 是否可以查询一个数据库的所有表的所有数据?性能如何?多久执行一次合适?
  • 添加记录和删除记录解耦。
  • 删除记录放在XXL-JOB中的任务里实现。

你可能感兴趣的:(定时器,数据库,mysql,java)