2.多租户之定时任务

多租户定时任务篇

多租户要做到数据的隔离,涉及到数据库,redis, mongodb, es等等。而定时任务作为操作数据的一个入口,也需要考虑进来。



前言

因为历史系统遗留原因,本篇以quartz定时任务为例,讲述它的启动细节,以及多租户处理。


一、先让quartz跑起来

启动springboot项目,版本2.7.0. quartz版本是目前最新的稳定版本是2.3.0,但spring-boot-starter-quartz对应的版本是2.3.2
在这里插入图片描述
基于内存的是默认存储方式,虽然这种方式的性能更好,但是我们还是习惯于使用数据库存储,所以数据库依赖也一步位。

 <dependency>
    <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>8.0.26</version>
 </dependency>

配置一个任务:留意usingJobData,它内部使用了Map,也是实现多租户隔离的机制

package com.example.qz.config;

import com.example.qz.job.FirstDemoJob;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author: jelex.xu
 * @Date: 2025/1/9 09:38
 * @desc:
 **/
@Configuration
public class QuartzConfig {
   

    @Bean
    public JobDetail firstJobDetail(){
   

        return JobBuilder.newJob(FirstDemoJob.class)
                .withIdentity("firstJob")
                .storeDurably()
                .withDescription("firstJob测试")
                .usingJobData("tenantId", "大庆")
                .usingJobData
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值