feat:定时任务开发
This commit is contained in:
@@ -0,0 +1,44 @@
|
|||||||
|
package com.xiang.app.common.manage;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.xiang.xmc.service.quartz.domain.entity.JobConfigDO;
|
||||||
|
import com.xiang.xmc.service.quartz.manage.IQuartzConfigManage;
|
||||||
|
import com.xiang.xmc.service.quartz.mapper.JobConfigMapper;
|
||||||
|
import com.xiang.xmc.xservice.mysql.annotation.DynamicDataSource;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: xiang
|
||||||
|
* @Date: 2026-01-05 14:21
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class QuartzConfigManageImpl extends ServiceImpl<JobConfigMapper, JobConfigDO> implements IQuartzConfigManage {
|
||||||
|
@Override
|
||||||
|
@DynamicDataSource(value = "xxz-job")
|
||||||
|
public JobConfigDO getByName(String appName, String beanName) {
|
||||||
|
LambdaQueryWrapper<JobConfigDO> lqw = Wrappers.lambdaQuery();
|
||||||
|
lqw.eq(JobConfigDO::getApplicationName, appName);
|
||||||
|
lqw.eq(JobConfigDO::getBeanName, beanName);
|
||||||
|
lqw.eq(JobConfigDO::getDelFlag, 0);
|
||||||
|
return baseMapper.selectOne(lqw);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@DynamicDataSource(value = "xxz-job")
|
||||||
|
public List<JobConfigDO> selectByAppName(String appName) {
|
||||||
|
LambdaQueryWrapper<JobConfigDO> lqw = Wrappers.lambdaQuery();
|
||||||
|
lqw.eq(JobConfigDO::getApplicationName, appName);
|
||||||
|
lqw.eq(JobConfigDO::getDelFlag, 0);
|
||||||
|
return baseMapper.selectList(lqw);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@DynamicDataSource(value = "xxz-job")
|
||||||
|
public int delByAppName(String appName) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.xiang.app.modules.jntyzx.schedule;
|
||||||
|
|
||||||
|
import com.xiang.xmc.service.quartz.annotation.XxzJob;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: xiang
|
||||||
|
* @Date: 2026-01-05 08:59
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class TestXxzJob {
|
||||||
|
|
||||||
|
@XxzJob(name = "TestXxzJob")
|
||||||
|
public void testXxzJob() {
|
||||||
|
log.info("测试xxz-job框架");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.xiang.app.modules.jntyzx.service;
|
package com.xiang.app.modules.jntyzx.service.impl;
|
||||||
|
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
@@ -16,6 +16,7 @@ import com.xiang.app.modules.jntyzx.entity.resp.OrderCreateResp;
|
|||||||
import com.xiang.app.modules.jntyzx.entity.resp.query.SitePositionList;
|
import com.xiang.app.modules.jntyzx.entity.resp.query.SitePositionList;
|
||||||
import com.xiang.app.modules.jntyzx.entity.resp.query.VenueList;
|
import com.xiang.app.modules.jntyzx.entity.resp.query.VenueList;
|
||||||
import com.xiang.app.modules.jntyzx.manage.IOrderCreateInfoManage;
|
import com.xiang.app.modules.jntyzx.manage.IOrderCreateInfoManage;
|
||||||
|
import com.xiang.app.modules.jntyzx.service.IJntyzxHttpService;
|
||||||
import com.xiang.xmc.service.cache.service.IRedisService;
|
import com.xiang.xmc.service.cache.service.IRedisService;
|
||||||
import com.xiang.xmc.service.http.helper.HttpHelper;
|
import com.xiang.xmc.service.http.helper.HttpHelper;
|
||||||
import com.xiang.xservice.basic.utils.Base64;
|
import com.xiang.xservice.basic.utils.Base64;
|
||||||
@@ -1,7 +1,8 @@
|
|||||||
package com.xiang.app.modules.jntyzx.service;
|
package com.xiang.app.modules.jntyzx.service.impl;
|
||||||
|
|
||||||
import com.xiang.app.modules.jntyzx.entity.pojo.OrderInfoDO;
|
import com.xiang.app.modules.jntyzx.entity.pojo.OrderInfoDO;
|
||||||
import com.xiang.app.modules.jntyzx.manage.IOrderCreateInfoManage;
|
import com.xiang.app.modules.jntyzx.manage.IOrderCreateInfoManage;
|
||||||
|
import com.xiang.app.modules.jntyzx.service.IJtOrderService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -1,9 +1,11 @@
|
|||||||
package com.xiang.app.modules.jntyzx.service;
|
package com.xiang.app.modules.jntyzx.service.impl;
|
||||||
|
|
||||||
import com.xiang.app.common.service.dingtalk.JtDingTalkFactory;
|
import com.xiang.app.common.service.dingtalk.JtDingTalkFactory;
|
||||||
import com.xiang.app.modules.jntyzx.entity.pojo.UserTokenInfoDO;
|
import com.xiang.app.modules.jntyzx.entity.pojo.UserTokenInfoDO;
|
||||||
import com.xiang.app.modules.jntyzx.entity.resp.JntyzxResponse;
|
import com.xiang.app.modules.jntyzx.entity.resp.JntyzxResponse;
|
||||||
import com.xiang.app.modules.jntyzx.manage.IUserTokenInfoManage;
|
import com.xiang.app.modules.jntyzx.manage.IUserTokenInfoManage;
|
||||||
|
import com.xiang.app.modules.jntyzx.service.IJntyzxHttpService;
|
||||||
|
import com.xiang.app.modules.jntyzx.service.IUserTokenInfoService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
@@ -1,10 +1,13 @@
|
|||||||
package com.xiang.app.modules.jntyzx.service;
|
package com.xiang.app.modules.jntyzx.service.impl;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import com.xiang.app.modules.jntyzx.entity.pojo.VenueInfoDO;
|
import com.xiang.app.modules.jntyzx.entity.pojo.VenueInfoDO;
|
||||||
import com.xiang.app.modules.jntyzx.entity.resp.query.SitePositionList;
|
import com.xiang.app.modules.jntyzx.entity.resp.query.SitePositionList;
|
||||||
import com.xiang.app.modules.jntyzx.manage.IVenueInfoManage;
|
import com.xiang.app.modules.jntyzx.manage.IVenueInfoManage;
|
||||||
|
import com.xiang.app.modules.jntyzx.service.IJntyzxHttpService;
|
||||||
|
import com.xiang.app.modules.jntyzx.service.IUserTokenInfoService;
|
||||||
|
import com.xiang.app.modules.jntyzx.service.IVenueService;
|
||||||
import com.xiang.app.modules.jntyzx.utils.VenueInfoUtils;
|
import com.xiang.app.modules.jntyzx.utils.VenueInfoUtils;
|
||||||
import com.xiang.xservice.basic.utils.DateUtils;
|
import com.xiang.xservice.basic.utils.DateUtils;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
package com.xiang.app;
|
package com.xiang.app;
|
||||||
|
|
||||||
|
import com.xiang.xmc.service.quartz.annotation.EnableXxzJob;
|
||||||
|
import org.mybatis.spring.annotation.MapperScan;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
@@ -15,6 +17,11 @@ import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
|
|||||||
"com.xiang.xservice.logger",
|
"com.xiang.xservice.logger",
|
||||||
"com.xiang.app.common.config",
|
"com.xiang.app.common.config",
|
||||||
})
|
})
|
||||||
|
@MapperScan(basePackages = {
|
||||||
|
"com.xiang.xmc.service.quartz",
|
||||||
|
"com.xiang.app.modules.*.mapper"
|
||||||
|
})
|
||||||
|
@EnableXxzJob(basePackages = {"com.xiang.app.modules.*.schedule"})
|
||||||
public class Application {
|
public class Application {
|
||||||
|
|
||||||
private static final Logger log = LoggerFactory.getLogger(Application.class);
|
private static final Logger log = LoggerFactory.getLogger(Application.class);
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package com.xiang.app;
|
||||||
|
|
||||||
|
import com.xiang.xmc.service.quartz.domain.JobDefinition;
|
||||||
|
import com.xiang.xmc.service.quartz.holder.JobDefinitionHolder;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.boot.ApplicationArguments;
|
||||||
|
import org.springframework.boot.ApplicationRunner;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: xiang
|
||||||
|
* @Date: 2025-12-31 14:19
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
@Slf4j
|
||||||
|
public class JobScannerRun implements ApplicationRunner {
|
||||||
|
@Override
|
||||||
|
public void run(ApplicationArguments args) throws Exception {
|
||||||
|
List<JobDefinition> jobDefinitions = JobDefinitionHolder.getAll();
|
||||||
|
if (CollectionUtils.isEmpty(jobDefinitions)) {
|
||||||
|
log.info("job 注册为空");
|
||||||
|
}
|
||||||
|
jobDefinitions.forEach(item -> {
|
||||||
|
log.info("已注册job:" + item.getName());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -17,6 +17,12 @@ spring:
|
|||||||
password: cornucopia@123
|
password: cornucopia@123
|
||||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
sshConnect: false
|
sshConnect: false
|
||||||
|
xxz-job:
|
||||||
|
url: jdbc:mysql://120.27.153.87:3306/xservice_quartz?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
|
||||||
|
username: quartz
|
||||||
|
password: quartz@123
|
||||||
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
|
sshConnect: false
|
||||||
redis:
|
redis:
|
||||||
host: r-bp1wt59a6nfyt4e3ltpd.redis.rds.aliyuncs.com
|
host: r-bp1wt59a6nfyt4e3ltpd.redis.rds.aliyuncs.com
|
||||||
port: 6379
|
port: 6379
|
||||||
@@ -29,6 +35,8 @@ spring:
|
|||||||
max-idle: 8
|
max-idle: 8
|
||||||
min-idle: 0
|
min-idle: 0
|
||||||
max-wait: 1000
|
max-wait: 1000
|
||||||
|
xxz-job:
|
||||||
|
appName: xservice-cornucopia
|
||||||
|
|
||||||
dingtalk:
|
dingtalk:
|
||||||
robot:
|
robot:
|
||||||
|
|||||||
Reference in New Issue
Block a user