From 8ca14e05a114392be6d54a289e94de4b832be608 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 30 Dec 2024 15:32:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 38 ++--- .../java/com/sqx/common/utils/IPUtils.java | 2 +- .../java/com/sqx/config/ShardingConfig.java | 9 +- .../modules/job/config/ScheduleConfig.java | 57 ------- .../job/controller/ScheduleJobController.java | 58 +++---- .../job/service/ScheduleJobService.java | 28 ++-- .../service/impl/ScheduleJobServiceImpl.java | 89 ++++------- .../com/sqx/modules/job/task/CashOutTask.java | 5 +- .../sqx/modules/job/task/CashOutTask2.java | 6 +- .../java/com/sqx/modules/job/task/ITask.java | 15 -- .../sqx/modules/job/task/SpinningTask3.java | 16 +- .../job/task/SupplyAgainSignRewardTask.java | 5 +- .../sqx/modules/job/task/TempCashOutTask.java | 5 +- .../sqx/modules/job/task/TempOrdersTask.java | 5 +- .../com/sqx/modules/job/task/TestTask.java | 25 --- .../sqx/modules/job/utils/ScheduleJob.java | 72 --------- .../sqx/modules/job/utils/ScheduleUtils.java | 147 ------------------ .../com/sqx/modules/pay/wuyou/Encrypt.java | 4 +- ...ataSourcePoolMetricsAutoConfiguration.java | 2 +- src/main/resources/application-local.yml | 2 +- src/main/resources/application.properties | 2 +- 21 files changed, 127 insertions(+), 465 deletions(-) delete mode 100644 src/main/java/com/sqx/modules/job/config/ScheduleConfig.java delete mode 100644 src/main/java/com/sqx/modules/job/task/ITask.java delete mode 100644 src/main/java/com/sqx/modules/job/task/TestTask.java delete mode 100644 src/main/java/com/sqx/modules/job/utils/ScheduleJob.java delete mode 100644 src/main/java/com/sqx/modules/job/utils/ScheduleUtils.java rename src/main/java/com/sqx/{config => sharding}/ShardingDataSourcePoolMetricsAutoConfiguration.java (99%) diff --git a/pom.xml b/pom.xml index 31ec0b85..5de3422f 100644 --- a/pom.xml +++ b/pom.xml @@ -137,11 +137,11 @@ 5.5.0 - - com.alibaba - druid - 1.1.10 - + + + + + com.auth0 @@ -262,11 +262,11 @@ - - com.baomidou - dynamic-datasource-spring-boot-starter - 4.1.3 - + + + + + mysql @@ -274,11 +274,11 @@ ${mysql.version} - - com.oracle - ojdbc6 - ${oracle.version} - + + + + + org.apache.shardingsphere @@ -303,10 +303,10 @@ ${mssql.version} - - org.postgresql - postgresql - + + + + com.alibaba druid-spring-boot-starter diff --git a/src/main/java/com/sqx/common/utils/IPUtils.java b/src/main/java/com/sqx/common/utils/IPUtils.java index 0fbd6c9f..24248d3f 100644 --- a/src/main/java/com/sqx/common/utils/IPUtils.java +++ b/src/main/java/com/sqx/common/utils/IPUtils.java @@ -1,6 +1,6 @@ package com.sqx.common.utils; -import com.alibaba.druid.util.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/com/sqx/config/ShardingConfig.java b/src/main/java/com/sqx/config/ShardingConfig.java index 12e0e2ed..f8efb899 100644 --- a/src/main/java/com/sqx/config/ShardingConfig.java +++ b/src/main/java/com/sqx/config/ShardingConfig.java @@ -81,13 +81,12 @@ public class ShardingConfig { shardingRuleConfig.setTableRuleConfigs(addTableRuleConfigs()); // 配置是否显示sql -// Properties props = new Properties(); -// props.put("sql.show", true); + Properties props = new Properties(); + props.put("sql.show", showSql); // 配置数据源 Map dataSourceMap = getShardingDataBase(); - return ShardingDataSourceFactory.createDataSource(dataSourceMap, shardingRuleConfig, null); -// return ShardingDataSourceFactory.createDataSource(dataSourceMap, shardingRuleConfig, props); + return ShardingDataSourceFactory.createDataSource(dataSourceMap, shardingRuleConfig, props); } /** @@ -144,8 +143,6 @@ public class ShardingConfig { masterSlaveRules.forEach((databaseName, masterSlaveRules) -> { MasterSlaveRuleConfiguration masterSlaveRuleConfig = new MasterSlaveRuleConfiguration(databaseName, masterSlaveRules.getMasterDataSourceName(), masterSlaveRules.getSlaveDataSourceNames()); - System.out.println("写入"+masterSlaveRules.getMasterDataSourceName()); - System.out.println("读出"+masterSlaveRules.getSlaveDataSourceNames()); sets.add(masterSlaveRuleConfig); }); return sets; diff --git a/src/main/java/com/sqx/modules/job/config/ScheduleConfig.java b/src/main/java/com/sqx/modules/job/config/ScheduleConfig.java deleted file mode 100644 index 8b7653b7..00000000 --- a/src/main/java/com/sqx/modules/job/config/ScheduleConfig.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.sqx.modules.job.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.scheduling.quartz.SchedulerFactoryBean; - -import javax.sql.DataSource; -import java.util.Properties; - -/** - * 定时任务配置 - * - */ -@Configuration -public class ScheduleConfig { - - @Bean - public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource) { - SchedulerFactoryBean factory = new SchedulerFactoryBean(); - factory.setDataSource(dataSource); - - //quartz参数 - Properties prop = new Properties(); - prop.put("org.quartz.scheduler.instanceName", "sqxScheduler"); - prop.put("org.quartz.scheduler.instanceId", "AUTO"); - //线程池配置 - prop.put("org.quartz.threadPool.class", "org.quartz.simpl.SimpleThreadPool"); - prop.put("org.quartz.threadPool.threadCount", "20"); - prop.put("org.quartz.threadPool.threadPriority", "5"); - //JobStore配置 - prop.put("org.quartz.jobStore.class", "org.springframework.scheduling.quartz.LocalDataSourceJobStore"); - //集群配置 - prop.put("org.quartz.jobStore.isClustered", "true"); - prop.put("org.quartz.jobStore.clusterCheckinInterval", "15000"); - prop.put("org.quartz.jobStore.maxMisfiresToHandleAtATime", "1"); - - prop.put("org.quartz.jobStore.misfireThreshold", "12000"); - prop.put("org.quartz.jobStore.tablePrefix", "QRTZ_"); - prop.put("org.quartz.jobStore.selectWithLockSQL", "SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?"); - - //PostgreSQL数据库,需要打开此注释 - //prop.put("org.quartz.jobStore.driverDelegateClass", "org.quartz.impl.jdbcjobstore.PostgreSQLDelegate"); - - factory.setQuartzProperties(prop); - - factory.setSchedulerName("sqxScheduler"); - //延时启动 - factory.setStartupDelay(30); - factory.setApplicationContextSchedulerContextKey("applicationContextKey"); - //可选,QuartzScheduler 启动时更新己存在的Job,这样就不用每次修改targetObject后删除qrtz_job_details表对应记录了 - factory.setOverwriteExistingJobs(true); - //设置自动启动,默认为true - factory.setAutoStartup(true); - - return factory; - } -} diff --git a/src/main/java/com/sqx/modules/job/controller/ScheduleJobController.java b/src/main/java/com/sqx/modules/job/controller/ScheduleJobController.java index 3ab91d53..3acdc51e 100644 --- a/src/main/java/com/sqx/modules/job/controller/ScheduleJobController.java +++ b/src/main/java/com/sqx/modules/job/controller/ScheduleJobController.java @@ -81,34 +81,34 @@ public class ScheduleJobController { /** * 立即执行任务 */ - @SysLog("立即执行任务") - @RequestMapping("/run") - public Result run(@RequestBody Long[] jobIds){ - scheduleJobService.run(jobIds); - - return Result.success(); - } - - /** - * 暂停定时任务 - */ - @SysLog("暂停定时任务") - @RequestMapping("/pause") - public Result pause(@RequestBody Long[] jobIds){ - scheduleJobService.pause(jobIds); - - return Result.success(); - } - - /** - * 恢复定时任务 - */ - @SysLog("恢复定时任务") - @RequestMapping("/resume") - public Result resume(@RequestBody Long[] jobIds){ - scheduleJobService.resume(jobIds); - - return Result.success(); - } +// @SysLog("立即执行任务") +// @RequestMapping("/run") +// public Result run(@RequestBody Long[] jobIds){ +// scheduleJobService.run(jobIds); +// +// return Result.success(); +// } +// +// /** +// * 暂停定时任务 +// */ +// @SysLog("暂停定时任务") +// @RequestMapping("/pause") +// public Result pause(@RequestBody Long[] jobIds){ +// scheduleJobService.pause(jobIds); +// +// return Result.success(); +// } +// +// /** +// * 恢复定时任务 +// */ +// @SysLog("恢复定时任务") +// @RequestMapping("/resume") +// public Result resume(@RequestBody Long[] jobIds){ +// scheduleJobService.resume(jobIds); +// +// return Result.success(); +// } } diff --git a/src/main/java/com/sqx/modules/job/service/ScheduleJobService.java b/src/main/java/com/sqx/modules/job/service/ScheduleJobService.java index 407a197d..515663c4 100644 --- a/src/main/java/com/sqx/modules/job/service/ScheduleJobService.java +++ b/src/main/java/com/sqx/modules/job/service/ScheduleJobService.java @@ -34,18 +34,18 @@ public interface ScheduleJobService extends IService { */ int updateBatch(Long[] jobIds, int status); - /** - * 立即执行 - */ - void run(Long[] jobIds); - - /** - * 暂停运行 - */ - void pause(Long[] jobIds); - - /** - * 恢复运行 - */ - void resume(Long[] jobIds); +// /** +// * 立即执行 +// */ +// void run(Long[] jobIds); +// +// /** +// * 暂停运行 +// */ +// void pause(Long[] jobIds); +// +// /** +// * 恢复运行 +// */ +// void resume(Long[] jobIds); } diff --git a/src/main/java/com/sqx/modules/job/service/impl/ScheduleJobServiceImpl.java b/src/main/java/com/sqx/modules/job/service/impl/ScheduleJobServiceImpl.java index 33db3560..84f29fa4 100644 --- a/src/main/java/com/sqx/modules/job/service/impl/ScheduleJobServiceImpl.java +++ b/src/main/java/com/sqx/modules/job/service/impl/ScheduleJobServiceImpl.java @@ -9,38 +9,22 @@ import com.sqx.common.utils.Query; import com.sqx.modules.job.dao.ScheduleJobDao; import com.sqx.modules.job.entity.ScheduleJobEntity; import com.sqx.modules.job.service.ScheduleJobService; -import com.sqx.modules.job.utils.ScheduleUtils; import org.apache.commons.lang.StringUtils; -import org.quartz.CronTrigger; -import org.quartz.Scheduler; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.annotation.PostConstruct; -import java.util.*; +import java.util.Arrays; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; @Service("scheduleJobService") public class ScheduleJobServiceImpl extends ServiceImpl implements ScheduleJobService { - @Autowired - private Scheduler scheduler; /** * 项目启动时,初始化定时器 */ - @PostConstruct - public void init(){ - List scheduleJobList = this.list(); - for(ScheduleJobEntity scheduleJob : scheduleJobList){ - CronTrigger cronTrigger = ScheduleUtils.getCronTrigger(scheduler, scheduleJob.getJobId()); - //如果不存在,则创建 - if(cronTrigger == null) { - ScheduleUtils.createScheduleJob(scheduler, scheduleJob); - }else { - ScheduleUtils.updateScheduleJob(scheduler, scheduleJob); - } - } - } + @Override public PageUtils queryPage(Map params) { @@ -61,25 +45,18 @@ public class ScheduleJobServiceImpl extends ServiceImpl cashOuts = cashOutDao.selectYesterday(); diff --git a/src/main/java/com/sqx/modules/job/task/CashOutTask2.java b/src/main/java/com/sqx/modules/job/task/CashOutTask2.java index 8cc74dae..365e2135 100644 --- a/src/main/java/com/sqx/modules/job/task/CashOutTask2.java +++ b/src/main/java/com/sqx/modules/job/task/CashOutTask2.java @@ -15,6 +15,7 @@ import com.sqx.modules.utils.AliPayOrderUtil; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -23,8 +24,8 @@ import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; -@Component("CashOutTask2") -public class CashOutTask2 implements ITask { +@Component +public class CashOutTask2{ @Resource private CashOutDao cashOutDao; @@ -35,7 +36,6 @@ public class CashOutTask2 implements ITask { private Logger logger = LoggerFactory.getLogger(getClass()); - @Override public void run(String params) { logger.info("提现开始"); if (StringUtils.isBlank(params) || isValidDate(params)) { diff --git a/src/main/java/com/sqx/modules/job/task/ITask.java b/src/main/java/com/sqx/modules/job/task/ITask.java deleted file mode 100644 index 2e98de28..00000000 --- a/src/main/java/com/sqx/modules/job/task/ITask.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.sqx.modules.job.task; - -/** - * 定时任务接口,所有定时任务都要实现该接口 - * - */ -public interface ITask { - - /** - * 执行定时任务接口 - * - * @param params 参数,多参数使用JSON数据 - */ - void run(String params); -} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/job/task/SpinningTask3.java b/src/main/java/com/sqx/modules/job/task/SpinningTask3.java index 2f083680..fc3d89c8 100644 --- a/src/main/java/com/sqx/modules/job/task/SpinningTask3.java +++ b/src/main/java/com/sqx/modules/job/task/SpinningTask3.java @@ -9,14 +9,17 @@ import com.sqx.modules.discSpinning.service.DiscSpinningService; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.Date; import java.util.List; -@Component("SpinningTask3") -public class SpinningTask3 implements ITask { +@Component +@EnableScheduling +public class SpinningTask3 { @Resource private DiscSpinningService spinningController; @@ -25,8 +28,12 @@ public class SpinningTask3 implements ITask { private Logger logger = LoggerFactory.getLogger(getClass()); - @Override - public void run(String params) { + @Scheduled(cron = "0 0/2 * * * ? ") + public void record() { + record("1"); + } + + public void record(String params) { logger.info("大转盘到账补偿机制"); // 获取当前时间 Date now = DateUtil.date(); @@ -48,6 +55,7 @@ public class SpinningTask3 implements ITask { recordQueryWrapper.lt("create_time", fiveMinutesAgoStr); //小于 recordQueryWrapper.gt("create_time", tenMinutesAgoStr); + logger.info("大转盘到账补偿时间范围:{}-----{}", tenMinutesAgoStr, fiveMinutesAgoStr); List list = recordService.list(recordQueryWrapper); ThreadUtil.execAsync(() -> { for (DiscSpinningRecord record : list) { diff --git a/src/main/java/com/sqx/modules/job/task/SupplyAgainSignRewardTask.java b/src/main/java/com/sqx/modules/job/task/SupplyAgainSignRewardTask.java index 57527923..6c5dd15e 100644 --- a/src/main/java/com/sqx/modules/job/task/SupplyAgainSignRewardTask.java +++ b/src/main/java/com/sqx/modules/job/task/SupplyAgainSignRewardTask.java @@ -21,8 +21,8 @@ import java.util.List; * @author GYJoker */ @Slf4j -@Component("SupplyAgainSignRewardTask") -public class SupplyAgainSignRewardTask implements ITask { +@Component +public class SupplyAgainSignRewardTask{ @Autowired private UserService userService; @@ -35,7 +35,6 @@ public class SupplyAgainSignRewardTask implements ITask { @Autowired private UserMoneyService userMoneyService; - @Override public void run(String params) { if (StringUtils.isBlank(params)) { log.error("参数为空"); diff --git a/src/main/java/com/sqx/modules/job/task/TempCashOutTask.java b/src/main/java/com/sqx/modules/job/task/TempCashOutTask.java index a7a9adc2..8b2ab3ea 100644 --- a/src/main/java/com/sqx/modules/job/task/TempCashOutTask.java +++ b/src/main/java/com/sqx/modules/job/task/TempCashOutTask.java @@ -15,8 +15,8 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.List; -@Component("TempCashOutTask") -public class TempCashOutTask implements ITask { +@Component +public class TempCashOutTask{ @Resource private CashOutDao cashOutDao; @@ -27,7 +27,6 @@ public class TempCashOutTask implements ITask { private Logger logger = LoggerFactory.getLogger(getClass()); - @Override public void run(String params) { logger.info("提现开始"); List cashOuts = cashOutDao.selectTemp(); diff --git a/src/main/java/com/sqx/modules/job/task/TempOrdersTask.java b/src/main/java/com/sqx/modules/job/task/TempOrdersTask.java index f9d5d4d1..74cb5a16 100644 --- a/src/main/java/com/sqx/modules/job/task/TempOrdersTask.java +++ b/src/main/java/com/sqx/modules/job/task/TempOrdersTask.java @@ -40,8 +40,8 @@ import java.util.List; import java.util.Map; import java.util.concurrent.CompletableFuture; -@Component("TempOrdersTask") -public class TempOrdersTask implements ITask { +@Component +public class TempOrdersTask { @Resource private OrdersDao ordersDao; @@ -69,7 +69,6 @@ public class TempOrdersTask implements ITask { private Logger logger = LoggerFactory.getLogger(getClass()); - @Override public void run(String params) { logger.info("订单表数据处理开始"); List orders = ordersDao.selectList(Wrappers.lambdaQuery() diff --git a/src/main/java/com/sqx/modules/job/task/TestTask.java b/src/main/java/com/sqx/modules/job/task/TestTask.java deleted file mode 100644 index 8f566e10..00000000 --- a/src/main/java/com/sqx/modules/job/task/TestTask.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.sqx.modules.job.task; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; - -/** - * 测试定时任务(演示Demo,可删除) - * - * testTask为spring bean的名称 - * - */ -@Component("testTask") -public class TestTask implements ITask { - private Logger logger = LoggerFactory.getLogger(getClass()); - - @Override - public void run(String params){ - - logger.debug("TestTask定时任务正在执行,参数为:{}", params); - } - - - -} diff --git a/src/main/java/com/sqx/modules/job/utils/ScheduleJob.java b/src/main/java/com/sqx/modules/job/utils/ScheduleJob.java deleted file mode 100644 index deb910fb..00000000 --- a/src/main/java/com/sqx/modules/job/utils/ScheduleJob.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.sqx.modules.job.utils; - -import com.sqx.common.utils.SpringContextUtils; -import com.sqx.modules.job.entity.ScheduleJobEntity; -import com.sqx.modules.job.entity.ScheduleJobLogEntity; -import com.sqx.modules.job.service.ScheduleJobLogService; -import org.apache.commons.lang.StringUtils; -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.scheduling.quartz.QuartzJobBean; - -import java.lang.reflect.Method; -import java.util.Date; - - -/** - * 定时任务 - * - */ -public class ScheduleJob extends QuartzJobBean { - private Logger logger = LoggerFactory.getLogger(getClass()); - - @Override - protected void executeInternal(JobExecutionContext context) throws JobExecutionException { - ScheduleJobEntity scheduleJob = (ScheduleJobEntity) context.getMergedJobDataMap() - .get(ScheduleJobEntity.JOB_PARAM_KEY); - - //获取spring bean - ScheduleJobLogService scheduleJobLogService = (ScheduleJobLogService) SpringContextUtils.getBean("scheduleJobLogService"); - - //数据库保存执行记录 - ScheduleJobLogEntity log = new ScheduleJobLogEntity(); - log.setJobId(scheduleJob.getJobId()); - log.setBeanName(scheduleJob.getBeanName()); - log.setParams(scheduleJob.getParams()); - log.setCreateTime(new Date()); - - //任务开始时间 - long startTime = System.currentTimeMillis(); - - try { - //执行任务 - logger.debug("任务准备执行,任务ID:" + scheduleJob.getJobId()); - - Object target = SpringContextUtils.getBean(scheduleJob.getBeanName()); - Method method = target.getClass().getDeclaredMethod("run", String.class); - method.invoke(target, scheduleJob.getParams()); - - //任务执行总时长 - long times = System.currentTimeMillis() - startTime; - log.setTimes((int)times); - //任务状态 0:成功 1:失败 - log.setStatus(0); - - logger.debug("任务执行完毕,任务ID:" + scheduleJob.getJobId() + " 总共耗时:" + times + "毫秒"); - } catch (Exception e) { - logger.error("任务执行失败,任务ID:" + scheduleJob.getJobId(), e); - - //任务执行总时长 - long times = System.currentTimeMillis() - startTime; - log.setTimes((int)times); - - //任务状态 0:成功 1:失败 - log.setStatus(1); - log.setError(StringUtils.substring(e.toString(), 0, 2000)); - }finally { - scheduleJobLogService.save(log); - } - } -} diff --git a/src/main/java/com/sqx/modules/job/utils/ScheduleUtils.java b/src/main/java/com/sqx/modules/job/utils/ScheduleUtils.java deleted file mode 100644 index f2895570..00000000 --- a/src/main/java/com/sqx/modules/job/utils/ScheduleUtils.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.sqx.modules.job.utils; - -import com.sqx.common.exception.SqxException; -import com.sqx.common.utils.Constant; -import com.sqx.modules.job.entity.ScheduleJobEntity; -import org.quartz.*; - -/** - * 定时任务工具类 - * - */ -public class ScheduleUtils { - private final static String JOB_NAME = "TASK_"; - - /** - * 获取触发器key - */ - public static TriggerKey getTriggerKey(Long jobId) { - return TriggerKey.triggerKey(JOB_NAME + jobId); - } - - /** - * 获取jobKey - */ - public static JobKey getJobKey(Long jobId) { - return JobKey.jobKey(JOB_NAME + jobId); - } - - /** - * 获取表达式触发器 - */ - public static CronTrigger getCronTrigger(Scheduler scheduler, Long jobId) { - try { - return (CronTrigger) scheduler.getTrigger(getTriggerKey(jobId)); - } catch (SchedulerException e) { - throw new SqxException("获取定时任务CronTrigger出现异常", e); - } - } - - /** - * 创建定时任务 - */ - public static void createScheduleJob(Scheduler scheduler, ScheduleJobEntity scheduleJob) { - try { - //构建job信息 - JobDetail jobDetail = JobBuilder.newJob(ScheduleJob.class).withIdentity(getJobKey(scheduleJob.getJobId())).build(); - - //表达式调度构建器 - CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(scheduleJob.getCronExpression()) - .withMisfireHandlingInstructionDoNothing(); - - //按新的cronExpression表达式构建一个新的trigger - CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(getTriggerKey(scheduleJob.getJobId())).withSchedule(scheduleBuilder).build(); - - //放入参数,运行时的方法可以获取 - jobDetail.getJobDataMap().put(ScheduleJobEntity.JOB_PARAM_KEY, scheduleJob); - - scheduler.scheduleJob(jobDetail, trigger); - - //暂停任务 - if(scheduleJob.getStatus() == Constant.ScheduleStatus.PAUSE.getValue()){ - pauseJob(scheduler, scheduleJob.getJobId()); - } - } catch (SchedulerException e) { - throw new SqxException("创建定时任务失败", e); - } - } - - /** - * 更新定时任务 - */ - public static void updateScheduleJob(Scheduler scheduler, ScheduleJobEntity scheduleJob) { - try { - TriggerKey triggerKey = getTriggerKey(scheduleJob.getJobId()); - - //表达式调度构建器 - CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(scheduleJob.getCronExpression()) - .withMisfireHandlingInstructionDoNothing(); - - CronTrigger trigger = getCronTrigger(scheduler, scheduleJob.getJobId()); - - //按新的cronExpression表达式重新构建trigger - trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder).build(); - - //参数 - trigger.getJobDataMap().put(ScheduleJobEntity.JOB_PARAM_KEY, scheduleJob); - - scheduler.rescheduleJob(triggerKey, trigger); - - //暂停任务 - if(scheduleJob.getStatus() == Constant.ScheduleStatus.PAUSE.getValue()){ - pauseJob(scheduler, scheduleJob.getJobId()); - } - - } catch (SchedulerException e) { - throw new SqxException("更新定时任务失败", e); - } - } - - /** - * 立即执行任务 - */ - public static void run(Scheduler scheduler, ScheduleJobEntity scheduleJob) { - try { - //参数 - JobDataMap dataMap = new JobDataMap(); - dataMap.put(ScheduleJobEntity.JOB_PARAM_KEY, scheduleJob); - - scheduler.triggerJob(getJobKey(scheduleJob.getJobId()), dataMap); - } catch (SchedulerException e) { - throw new SqxException("立即执行定时任务失败", e); - } - } - - /** - * 暂停任务 - */ - public static void pauseJob(Scheduler scheduler, Long jobId) { - try { - scheduler.pauseJob(getJobKey(jobId)); - } catch (SchedulerException e) { - throw new SqxException("暂停定时任务失败", e); - } - } - - /** - * 恢复任务 - */ - public static void resumeJob(Scheduler scheduler, Long jobId) { - try { - scheduler.resumeJob(getJobKey(jobId)); - } catch (SchedulerException e) { - throw new SqxException("暂停定时任务失败", e); - } - } - - /** - * 删除定时任务 - */ - public static void deleteScheduleJob(Scheduler scheduler, Long jobId) { - try { - scheduler.deleteJob(getJobKey(jobId)); - } catch (SchedulerException e) { - throw new SqxException("删除定时任务失败", e); - } - } -} diff --git a/src/main/java/com/sqx/modules/pay/wuyou/Encrypt.java b/src/main/java/com/sqx/modules/pay/wuyou/Encrypt.java index 79d99fde..91938961 100644 --- a/src/main/java/com/sqx/modules/pay/wuyou/Encrypt.java +++ b/src/main/java/com/sqx/modules/pay/wuyou/Encrypt.java @@ -1,6 +1,6 @@ package com.sqx.modules.pay.wuyou; -import com.alibaba.druid.util.Utils; +import com.sqx.modules.utils.MD5Util; import java.util.HashMap; import java.util.Map; @@ -23,7 +23,7 @@ public class Encrypt { sb.append("key=").append(APP_SECRET); String signStr = sb.toString(); System.out.println("signStr: " + signStr); - return Utils.md5(signStr).toUpperCase(); + return MD5Util.encodeByMD5(signStr).toUpperCase(); } public static void main(String[] args) { diff --git a/src/main/java/com/sqx/config/ShardingDataSourcePoolMetricsAutoConfiguration.java b/src/main/java/com/sqx/sharding/ShardingDataSourcePoolMetricsAutoConfiguration.java similarity index 99% rename from src/main/java/com/sqx/config/ShardingDataSourcePoolMetricsAutoConfiguration.java rename to src/main/java/com/sqx/sharding/ShardingDataSourcePoolMetricsAutoConfiguration.java index c3454b5a..3c7252ac 100644 --- a/src/main/java/com/sqx/config/ShardingDataSourcePoolMetricsAutoConfiguration.java +++ b/src/main/java/com/sqx/sharding/ShardingDataSourcePoolMetricsAutoConfiguration.java @@ -1,4 +1,4 @@ -package com.sqx.config; +package com.sqx.sharding; import com.zaxxer.hikari.HikariDataSource; import com.zaxxer.hikari.metrics.micrometer.MicrometerMetricsTrackerFactory; diff --git a/src/main/resources/application-local.yml b/src/main/resources/application-local.yml index 2c965598..e7978925 100644 --- a/src/main/resources/application-local.yml +++ b/src/main/resources/application-local.yml @@ -16,7 +16,7 @@ spring: shardingsphere: center-tables-data-node: duanju.%s # 显示sharding-jdbc改写的sql语句 - show-sql: true + show-sql: false # 数据源名称 datasource: # 数据源配置begin diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 3621d08e..80305245 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1 +1 @@ -center-tables=activity,app,banner,cash_out,comment_good,common_info,complet_award,coupon,coupon_user,course,course_classification,course_collect,course_comment,course_details,course_user,disc_spinning,disc_spinning_amount,disc_spinning_record,help_classify,help_word,invite,invite_award,invite_money,message_info,msg,orders,pay_classify,pay_details,qrtz_blob_triggers,qrtz_calendars,qrtz_cron_triggers,qrtz_fired_triggers,qrtz_job_details,qrtz_locks,qrtz_paused_trigger_grps,qrtz_scheduler_state,qrtz_simple_triggers,qrtz_simprop_triggers,qrtz_triggers,schedule_job,schedule_job_log,sdk_info,sdk_type,search,sys_captcha,sys_config,sys_dict,sys_log,sys_menu,sys_oss,sys_role,sys_role_menu,sys_user,sys_user_role,sys_user_token,task_center,task_center_record,task_center_reward,tb_user,uni_ad_callback_record,url_address,user_integral,user_integral_details,user_money,user_money_details,user_prize_exchange,user_sign_record,user_vip,vip_details \ No newline at end of file +center-tables=activity,app,banner,cash_out,comment_good,common_info,complet_award,coupon,coupon_user,course,course_classification,course_collect,course_comment,course_details,course_user,disc_spinning,disc_spinning_amount,disc_spinning_record,help_classify,help_word,invite,invite_award,invite_money,message_info,msg,orders,pay_classify,pay_details,qrtz_blob_triggers,qrtz_calendars,qrtz_cron_triggers,qrtz_fired_triggers,qrtz_job_details,qrtz_locks,qrtz_paused_trigger_grps,qrtz_scheduler_state,qrtz_simple_triggers,qrtz_simprop_triggers,qrtz_triggers,schedule_job,schedule_job_log,sdk_info,sdk_type,search,sys_captcha,sys_config,sys_dict,sys_log,sys_menu,sys_oss,sys_role,sys_role_menu,sys_user,sys_user_role,sys_user_token,task_center,task_center_record,task_center_reward,tb_user,uni_ad_callback_record,url_address,user_integral,user_integral_details,user_money,user_money_details,user_prize_exchange,user_sign_record,user_vip,vip_details,invite_achievement \ No newline at end of file