xxl-job任务调度中心实现数据同步

继续上一篇Spring Boot + Mybatis-Plus实现多数据源的内容。
本次选用的xxl-job版本为2.1.1

目前我们分别有master库与local库,并且都拥有一张users表。但只有master库中存在数据
需求:将master库中的数据,同步更新到local库
是不是特别简单,先查master,再插入local。无则插入,有则检查更新。
问题:
1、我不想手动run来实现该功能,如何自定义执行时间,使其自动运行呢?
2、每次执行,我应该从master中获取多少条数据来进行操作呢?所有数据吗?如果是大数据量呢?

关于xxl-job,本文就不做过多的介绍了。具体内容点击–>xxl-job

增加xxl-job相关配置

pom文件

<!-- xxl-job 任务调度中心 -->
<dependency>
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-job-core</artifactId>
    <version>2.1.1</version>
</dependency>

application.yml

xxl:
  job:
    admin:
      addresses: http://127.0.0.1:8000/xxl-job-admin  # 调度中心部署跟地址 [选填]
    accessToken:                                      # 执行器通讯TOKEN [选填]:非空时启用
    executor:
      appname: demo
      address:
      ip:                                             # 执行器IP [选填]:默认为空表示自动获取IP
      port: 9999                                      # 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999
      logpath: /data/applogs/xxl-job/jobhandler       # 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径
      logretentiondays: 30                            # 执行器日志保存天数 [选填] :值大于3时生效,启用执行器Log文件定期清理功能,否则不生效

新增XxlJobConfig.java文件

该文件位于xxl-job项目中,直接复制到config目录中即可
在这里插入图片描述


在users表中,存在created_time与updated_time,在每次执行操作后,记录本次操作的时间。除了第一次执行需要获取master中所有数据,其后都只需要获取 updated_time > 上次操作时间 的数据

新增数据表与mapper文件

SQL

USE db_local;
CREATE TABLE config(
	id INT PRIMARY KEY AUTO_INCREMENT,
	type INT COMMENT '',
	created_time TIMESTAMP NULL DEFAULT NULL
)ENGINE=INNODB;

local下Config

package com.demo.model.local;

import lombok.Data;
import java.util.Date;

@Data
public class Config {
   
    private Integer id;
    private Integer type;
    private Date createdTime;
}

master下UsersMapper

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.demo.dao.master.UsersMapper">
    <select id="getData" parameterType="java.util.Date" resultType="com.demo.model.Users">
        SELECT * FROM users WHERE updated_time >=
        <if test="date == null">
            '2000-01-01 00:00:00'
        </
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值