diff --git a/db/yami_shop.sql b/db/yami_shop.sql
index 245ee79..1ef89ab 100644
--- a/db/yami_shop.sql
+++ b/db/yami_shop.sql
@@ -16,238 +16,6 @@ USE yami_shops;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
-/*Table structure for table `qrtz_blob_triggers` */
-
-/*Table structure for table `qrtz_blob_triggers` */
-
-DROP TABLE IF EXISTS `qrtz_blob_triggers`;
-
-CREATE TABLE `qrtz_blob_triggers` (
- `SCHED_NAME` varchar(120) NOT NULL,
- `TRIGGER_NAME` varchar(200) NOT NULL,
- `TRIGGER_GROUP` varchar(200) NOT NULL,
- `BLOB_DATA` blob,
- PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
- KEY `SCHED_NAME` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
- CONSTRAINT `qrtz_blob_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
-/*Data for the table `qrtz_blob_triggers` */
-
-/*Table structure for table `qrtz_calendars` */
-
-DROP TABLE IF EXISTS `qrtz_calendars`;
-
-CREATE TABLE `qrtz_calendars` (
- `SCHED_NAME` varchar(120) NOT NULL,
- `CALENDAR_NAME` varchar(200) NOT NULL,
- `CALENDAR` blob NOT NULL,
- PRIMARY KEY (`SCHED_NAME`,`CALENDAR_NAME`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
-/*Data for the table `qrtz_calendars` */
-
-/*Table structure for table `qrtz_cron_triggers` */
-
-DROP TABLE IF EXISTS `qrtz_cron_triggers`;
-
-CREATE TABLE `qrtz_cron_triggers` (
- `SCHED_NAME` varchar(120) NOT NULL,
- `TRIGGER_NAME` varchar(200) NOT NULL,
- `TRIGGER_GROUP` varchar(200) NOT NULL,
- `CRON_EXPRESSION` varchar(120) NOT NULL,
- `TIME_ZONE_ID` varchar(80) DEFAULT NULL,
- PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
- CONSTRAINT `qrtz_cron_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
-/*Data for the table `qrtz_cron_triggers` */
-
-insert into `qrtz_cron_triggers`(`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`,`CRON_EXPRESSION`,`TIME_ZONE_ID`) values
-('clusteredScheduler','TASK_14','DEFAULT','0 * * * * ?','Asia/Shanghai'),
-('clusteredScheduler','TASK_16','DEFAULT','0 0/5 * * * ?','Asia/Shanghai');
-
-/*Table structure for table `qrtz_fired_triggers` */
-
-DROP TABLE IF EXISTS `qrtz_fired_triggers`;
-
-CREATE TABLE `qrtz_fired_triggers` (
- `SCHED_NAME` varchar(120) NOT NULL,
- `ENTRY_ID` varchar(95) NOT NULL,
- `TRIGGER_NAME` varchar(200) NOT NULL,
- `TRIGGER_GROUP` varchar(200) NOT NULL,
- `INSTANCE_NAME` varchar(200) NOT NULL,
- `FIRED_TIME` bigint(13) NOT NULL,
- `SCHED_TIME` bigint(13) NOT NULL,
- `PRIORITY` int(11) NOT NULL,
- `STATE` varchar(16) NOT NULL,
- `JOB_NAME` varchar(200) DEFAULT NULL,
- `JOB_GROUP` varchar(200) DEFAULT NULL,
- `IS_NONCONCURRENT` varchar(1) DEFAULT NULL,
- `REQUESTS_RECOVERY` varchar(1) DEFAULT NULL,
- PRIMARY KEY (`SCHED_NAME`,`ENTRY_ID`),
- KEY `IDX_QRTZ_FT_TRIG_INST_NAME` (`SCHED_NAME`,`INSTANCE_NAME`),
- KEY `IDX_QRTZ_FT_INST_JOB_REQ_RCVRY` (`SCHED_NAME`,`INSTANCE_NAME`,`REQUESTS_RECOVERY`),
- KEY `IDX_QRTZ_FT_J_G` (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`),
- KEY `IDX_QRTZ_FT_JG` (`SCHED_NAME`,`JOB_GROUP`),
- KEY `IDX_QRTZ_FT_T_G` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
- KEY `IDX_QRTZ_FT_TG` (`SCHED_NAME`,`TRIGGER_GROUP`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
-/*Data for the table `qrtz_fired_triggers` */
-
-/*Table structure for table `qrtz_job_details` */
-
-DROP TABLE IF EXISTS `qrtz_job_details`;
-
-CREATE TABLE `qrtz_job_details` (
- `SCHED_NAME` varchar(120) NOT NULL,
- `JOB_NAME` varchar(200) NOT NULL,
- `JOB_GROUP` varchar(200) NOT NULL,
- `DESCRIPTION` varchar(250) DEFAULT NULL,
- `JOB_CLASS_NAME` varchar(250) NOT NULL,
- `IS_DURABLE` varchar(1) NOT NULL,
- `IS_NONCONCURRENT` varchar(1) NOT NULL,
- `IS_UPDATE_DATA` varchar(1) NOT NULL,
- `REQUESTS_RECOVERY` varchar(1) NOT NULL,
- `JOB_DATA` blob,
- PRIMARY KEY (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`),
- KEY `IDX_QRTZ_J_REQ_RECOVERY` (`SCHED_NAME`,`REQUESTS_RECOVERY`),
- KEY `IDX_QRTZ_J_GRP` (`SCHED_NAME`,`JOB_GROUP`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
-/*Data for the table `qrtz_job_details` */
-
-insert into `qrtz_job_details`(`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`,`DESCRIPTION`,`JOB_CLASS_NAME`,`IS_DURABLE`,`IS_NONCONCURRENT`,`IS_UPDATE_DATA`,`REQUESTS_RECOVERY`,`JOB_DATA`) values
-('clusteredScheduler','TASK_14','DEFAULT',NULL,'com.yami.shop.quartz.config.QuartzJob','0','1','0','0',''),
-('clusteredScheduler','TASK_16','DEFAULT',NULL,'com.yami.shop.quartz.config.QuartzJob','0','1','0','0','');
-
-/*Table structure for table `qrtz_locks` */
-
-DROP TABLE IF EXISTS `qrtz_locks`;
-
-CREATE TABLE `qrtz_locks` (
- `SCHED_NAME` varchar(120) NOT NULL,
- `LOCK_NAME` varchar(40) NOT NULL,
- PRIMARY KEY (`SCHED_NAME`,`LOCK_NAME`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
-/*Data for the table `qrtz_locks` */
-
-insert into `qrtz_locks`(`SCHED_NAME`,`LOCK_NAME`) values
-('clusteredScheduler','STATE_ACCESS'),
-('clusteredScheduler','TRIGGER_ACCESS');
-
-/*Table structure for table `qrtz_paused_trigger_grps` */
-
-DROP TABLE IF EXISTS `qrtz_paused_trigger_grps`;
-
-CREATE TABLE `qrtz_paused_trigger_grps` (
- `SCHED_NAME` varchar(120) NOT NULL,
- `TRIGGER_GROUP` varchar(200) NOT NULL,
- PRIMARY KEY (`SCHED_NAME`,`TRIGGER_GROUP`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
-/*Data for the table `qrtz_paused_trigger_grps` */
-
-/*Table structure for table `qrtz_scheduler_state` */
-
-DROP TABLE IF EXISTS `qrtz_scheduler_state`;
-
-CREATE TABLE `qrtz_scheduler_state` (
- `SCHED_NAME` varchar(120) NOT NULL,
- `INSTANCE_NAME` varchar(200) NOT NULL,
- `LAST_CHECKIN_TIME` bigint(13) NOT NULL,
- `CHECKIN_INTERVAL` bigint(13) NOT NULL,
- PRIMARY KEY (`SCHED_NAME`,`INSTANCE_NAME`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
-/*Data for the table `qrtz_scheduler_state` */
-
-/*Table structure for table `qrtz_simple_triggers` */
-
-DROP TABLE IF EXISTS `qrtz_simple_triggers`;
-
-CREATE TABLE `qrtz_simple_triggers` (
- `SCHED_NAME` varchar(120) NOT NULL,
- `TRIGGER_NAME` varchar(200) NOT NULL,
- `TRIGGER_GROUP` varchar(200) NOT NULL,
- `REPEAT_COUNT` bigint(7) NOT NULL,
- `REPEAT_INTERVAL` bigint(12) NOT NULL,
- `TIMES_TRIGGERED` bigint(10) NOT NULL,
- PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
- CONSTRAINT `qrtz_simple_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
-/*Data for the table `qrtz_simple_triggers` */
-
-/*Table structure for table `qrtz_simprop_triggers` */
-
-DROP TABLE IF EXISTS `qrtz_simprop_triggers`;
-
-CREATE TABLE `qrtz_simprop_triggers` (
- `SCHED_NAME` varchar(120) NOT NULL,
- `TRIGGER_NAME` varchar(200) NOT NULL,
- `TRIGGER_GROUP` varchar(200) NOT NULL,
- `STR_PROP_1` varchar(512) DEFAULT NULL,
- `STR_PROP_2` varchar(512) DEFAULT NULL,
- `STR_PROP_3` varchar(512) DEFAULT NULL,
- `INT_PROP_1` int(11) DEFAULT NULL,
- `INT_PROP_2` int(11) DEFAULT NULL,
- `LONG_PROP_1` bigint(20) DEFAULT NULL,
- `LONG_PROP_2` bigint(20) DEFAULT NULL,
- `DEC_PROP_1` decimal(13,4) DEFAULT NULL,
- `DEC_PROP_2` decimal(13,4) DEFAULT NULL,
- `BOOL_PROP_1` varchar(1) DEFAULT NULL,
- `BOOL_PROP_2` varchar(1) DEFAULT NULL,
- PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
- CONSTRAINT `qrtz_simprop_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
-/*Data for the table `qrtz_simprop_triggers` */
-
-/*Table structure for table `qrtz_triggers` */
-
-DROP TABLE IF EXISTS `qrtz_triggers`;
-
-CREATE TABLE `qrtz_triggers` (
- `SCHED_NAME` varchar(120) NOT NULL,
- `TRIGGER_NAME` varchar(200) NOT NULL,
- `TRIGGER_GROUP` varchar(200) NOT NULL,
- `JOB_NAME` varchar(200) NOT NULL,
- `JOB_GROUP` varchar(200) NOT NULL,
- `DESCRIPTION` varchar(250) DEFAULT NULL,
- `NEXT_FIRE_TIME` bigint(13) DEFAULT NULL,
- `PREV_FIRE_TIME` bigint(13) DEFAULT NULL,
- `PRIORITY` int(11) DEFAULT NULL,
- `TRIGGER_STATE` varchar(16) NOT NULL,
- `TRIGGER_TYPE` varchar(8) NOT NULL,
- `START_TIME` bigint(13) NOT NULL,
- `END_TIME` bigint(13) DEFAULT NULL,
- `CALENDAR_NAME` varchar(200) DEFAULT NULL,
- `MISFIRE_INSTR` smallint(2) DEFAULT NULL,
- `JOB_DATA` blob,
- PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
- KEY `IDX_QRTZ_T_J` (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`),
- KEY `IDX_QRTZ_T_JG` (`SCHED_NAME`,`JOB_GROUP`),
- KEY `IDX_QRTZ_T_C` (`SCHED_NAME`,`CALENDAR_NAME`),
- KEY `IDX_QRTZ_T_G` (`SCHED_NAME`,`TRIGGER_GROUP`),
- KEY `IDX_QRTZ_T_STATE` (`SCHED_NAME`,`TRIGGER_STATE`),
- KEY `IDX_QRTZ_T_N_STATE` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`,`TRIGGER_STATE`),
- KEY `IDX_QRTZ_T_N_G_STATE` (`SCHED_NAME`,`TRIGGER_GROUP`,`TRIGGER_STATE`),
- KEY `IDX_QRTZ_T_NEXT_FIRE_TIME` (`SCHED_NAME`,`NEXT_FIRE_TIME`),
- KEY `IDX_QRTZ_T_NFT_ST` (`SCHED_NAME`,`TRIGGER_STATE`,`NEXT_FIRE_TIME`),
- KEY `IDX_QRTZ_T_NFT_MISFIRE` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`),
- KEY `IDX_QRTZ_T_NFT_ST_MISFIRE` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`,`TRIGGER_STATE`),
- KEY `IDX_QRTZ_T_NFT_ST_MISFIRE_GRP` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`,`TRIGGER_GROUP`,`TRIGGER_STATE`),
- CONSTRAINT `qrtz_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) REFERENCES `qrtz_job_details` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
-/*Data for the table `qrtz_triggers` */
-
-insert into `qrtz_triggers`(`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`,`JOB_NAME`,`JOB_GROUP`,`DESCRIPTION`,`NEXT_FIRE_TIME`,`PREV_FIRE_TIME`,`PRIORITY`,`TRIGGER_STATE`,`TRIGGER_TYPE`,`START_TIME`,`END_TIME`,`CALENDAR_NAME`,`MISFIRE_INSTR`,`JOB_DATA`) values
-('clusteredScheduler','TASK_14','DEFAULT','TASK_14','DEFAULT',NULL,1669166100000,1669166040000,5,'WAITING','CRON',1653270825000,0,NULL,1,''),
-('clusteredScheduler','TASK_16','DEFAULT','TASK_16','DEFAULT',NULL,1669166100000,1669165800000,5,'WAITING','CRON',1653270869000,0,NULL,1,'');
/*Table structure for table `tz_area` */
@@ -5052,8 +4820,6 @@ CREATE TABLE `tz_sys_log` (
/*Data for the table `tz_sys_log` */
insert into `tz_sys_log`(`id`,`username`,`operation`,`method`,`params`,`time`,`ip`,`create_date`) values
-(829,'admin','保存定时任务','com.yami.shop.quartz.controller.ScheduleJobController.save()','{\"jobId\":14,\"beanName\":\"orderTask\",\"methodName\":\"cancelOrder\",\"cronExpression\":\"0 * * * * ?\",\"status\":0,\"remark\":\"取消超时未支付订单\",\"createTime\":\"2019-06-24T06:51:51.074+0000\"}',167,'127.0.0.1','2019-06-24 14:51:51'),
-(830,'admin','保存定时任务','com.yami.shop.quartz.controller.ScheduleJobController.save()','{\"jobId\":16,\"beanName\":\"orderTask\",\"methodName\":\"confirmOrder\",\"cronExpression\":\"0 0/5 * * * ?\",\"status\":0,\"remark\":\"系统自动确认收货订单\",\"createTime\":\"2019-06-24T06:52:47.482+0000\"}',62,'127.0.0.1','2019-06-24 14:52:48'),
(831,'admin','删除菜单','com.yami.shop.sys.controller.SysMenuController.delete()','168',8,'127.0.0.1','2019-06-26 14:04:22'),
(832,'admin','删除菜单','com.yami.shop.sys.controller.SysMenuController.delete()','229',1,'127.0.0.1','2019-06-26 14:31:31'),
(833,'admin','删除菜单','com.yami.shop.sys.controller.SysMenuController.delete()','231',6,'127.0.0.1','2019-06-26 14:31:37'),
@@ -5065,10 +4831,7 @@ insert into `tz_sys_log`(`id`,`username`,`operation`,`method`,`params`,`time`,`
(839,'admin','保存配置','com.yami.shop.sys.controller.SysConfigController.save()','{\"id\":1,\"paramKey\":\"测试\",\"paramValue\":\"1\",\"remark\":\"1\"}',17,'127.0.0.1','2019-07-03 08:57:59'),
(840,'admin','删除配置','com.yami.shop.sys.controller.SysConfigController.delete()','[1]',18,'127.0.0.1','2019-07-03 08:58:20'),
(841,'admin','新增公告管理','com.yami.shop.admin.controller.NoticeController.save()','{\"id\":4,\"shopId\":1,\"title\":\"测试\",\"content\":\"
1111
\",\"status\":1,\"isTop\":1,\"publishTime\":\"2019-07-03T02:05:55.730+0000\",\"updateTime\":\"2019-07-03T02:05:55.730+0000\"}',26,'127.0.0.1','2019-07-03 10:05:56'),
-(842,'admin','删除公告管理','com.yami.shop.admin.controller.NoticeController.removeById()','4',37,'127.0.0.1','2019-07-03 20:00:24'),
-(843,'admin','修改定时任务','com.yami.shop.quartz.controller.ScheduleJobController.update()','{\"jobId\":14,\"beanName\":\"orderTask\",\"methodName\":\"cancelOrder\",\"cronExpression\":\"0 * * * * ?\",\"status\":0,\"remark\":\"取消超时未支付订单\"}',50,'127.0.0.1','2019-08-07 17:01:52'),
-(844,'admin','修改定时任务','com.yami.shop.quartz.controller.ScheduleJobController.update()','{\"jobId\":16,\"beanName\":\"orderTask\",\"methodName\":\"confirmOrder\",\"cronExpression\":\"0 0/5 * * * ?\",\"status\":0,\"remark\":\"系统自动确认收货订单\"}',18,'127.0.0.1','2019-08-07 17:01:57'),
-(845,'admin','立即执行任务','com.yami.shop.quartz.controller.ScheduleJobController.run()','[14]',14,'127.0.0.1','2019-08-07 17:02:06');
+(842,'admin','删除公告管理','com.yami.shop.admin.controller.NoticeController.removeById()','4',37,'127.0.0.1','2019-07-03 20:00:24');
/*Table structure for table `tz_sys_menu` */
diff --git a/doc/README.md b/doc/README.md
index af46639..e7ac35d 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -30,12 +30,13 @@
以下版本是最低要求的!!! 提问问题前请注意开发环境!!
-| 工具 | 版本 |
-| ------ |------|
-| jdk | 1.8+ |
-| mysql | 5.7+ |
-| redis | 4.0+ |
-| nodejs | 8-12 |
+| 工具 | 版本 |
+|---------|-------|
+| jdk | 1.8+ |
+| mysql | 5.7+ |
+| redis | 4.0+ |
+| nodejs | 14-16 |
+| xxl-job | 2.3.1 |
### 1.2 安装jdk + mysql + redis + maven
@@ -54,11 +55,15 @@
- 推荐使用idea,安装lombok插件后,使用idea导入maven项目
- 将yami_shop.sql导入到mysql中,修改`application-dev.yml`更改 datasource.url、user、password
-- 将mysql配置为不区分表名大小写
- 通过修改`shop.properties` 修改七牛云、阿里大于等信息
- 修改`api.properties` 修改当前接口所在域名,用于支付回调
- 启动redis,端口6379
- 通过`WebApplication`启动项目后台接口,`ApiApplication` 启动项目前端接口
+- xxl-job定时任务,通过github或者gitee下载xxl-job的已经打包好的源码,把
+
+
+
+
## 3.vue开发环境安装
diff --git a/doc/基本框架设计/项目目录结构.md b/doc/基本框架设计/项目目录结构.md
index a225035..6f3b316 100644
--- a/doc/基本框架设计/项目目录结构.md
+++ b/doc/基本框架设计/项目目录结构.md
@@ -8,7 +8,6 @@ yami-shops
├── yami-shop-api -- 前端(小程序)接口工程[8086]
├── yami-shop-bean -- 所有公共的实体类,商城基本流程所需的实体类
├── yami-shop-common -- 前后台需要用到的公共配置,工具类等的集合地
-├── yami-shop-quartz -- 定时任务模块
├── yami-shop-security -- oauth2.0 授权认证模块
├── yami-shop-service -- 前后台需要用到的公共的、商城基本流程所需的service,dao的集合地
├── yami-shop-sys -- 后台用户角色权限管理模块
diff --git a/doc/接口设计/必读.md b/doc/接口设计/必读.md
index babb5fe..2659abe 100644
--- a/doc/接口设计/必读.md
+++ b/doc/接口设计/必读.md
@@ -1,8 +1,3 @@
这里只有几点说明:
1. 这里写的是接口设计,如果你整个接口的接口文档,只需要启动api这个项目,然后访问 http://localhost:8086/doc.html
-
-2. 这里写的是如何设计,我们就不水接口文档几十页了好吧。
-3. 我们说了数据库基于b2b2c其实接口也是基于b2b2c,所以你才会在很多的接口的当中看到很多的`shop_id`。
-4. b2b2c和b2c的接口设计,很多情况下,也就是多了一个`shop_id`而已。
-
diff --git a/doc/生产环境/docker/centos jdk安装.md b/doc/生产环境/centos jdk安装.md
similarity index 100%
rename from doc/生产环境/docker/centos jdk安装.md
rename to doc/生产环境/centos jdk安装.md
diff --git a/doc/生产环境/教你如何部署.md b/doc/生产环境/教你如何部署.md
index c6714c5..31d84a3 100644
--- a/doc/生产环境/教你如何部署.md
+++ b/doc/生产环境/教你如何部署.md
@@ -35,12 +35,12 @@ yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
7. 将两个jar上传到centos环境中
-8. 在生产环境中运行时候,需要使用`-Dspring.profiles.active=prod` ,在使用admin这个工程项目于生产环境的时候要添加定时任务的配置如`-Dspring.profiles.active=prod,quartz`,运行:
+8. 在生产环境中运行时候,需要使用`-Dspring.profiles.active=prod` ,在使用admin这个工程项目于生产环境的时候要添加定时任务的配置如`-Dspring.profiles.active=prod`,运行:
```bash
nohup java -jar -Dspring.profiles.active=prod "${jarPath}/${jarName}" > "${jarPath}/log/${moduleName}-console.log" &
-nohup java -jar -Dspring.profiles.active=prod,quartz "${jarPath}/${jarName}" > "${jarPath}/log/${moduleName}-console.log" &
+nohup java -jar -Dspring.profiles.active=prod "${jarPath}/${jarName}" > "${jarPath}/log/${moduleName}-console.log" &
```
- 替换`${jarPath}` 为`jar` 所在路径
@@ -60,7 +60,7 @@ tail -f ${PROJECT_PATH}/log/api.log
10. 使用nginx将请求指向特定的端口。
-
+11. 关于定时任务,请使用xxl-job,看`XxlJobConfig`的配置说明
### 2.vue
diff --git a/pom.xml b/pom.xml
index 7272397..be71195 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,7 +15,6 @@
yami-shop-bean
yami-shop-service
yami-shop-security
- yami-shop-quartz
@@ -41,6 +40,8 @@
2.12.1
2.17.2
3.0.3
+ 2.3.1
+ 3.1.1
@@ -144,6 +145,16 @@
transmittable-thread-local
${transmittable-thread-local.version}
+
+ com.xuxueli
+ xxl-job-core
+ ${xxl-job.version}
+
+
+ org.springframework.cloud
+ spring-cloud-commons
+ ${spring-cloud-commons.version}
+
diff --git a/yami-shop-admin/Dockerfile b/yami-shop-admin/Dockerfile
index 2c18000..88163d1 100644
--- a/yami-shop-admin/Dockerfile
+++ b/yami-shop-admin/Dockerfile
@@ -12,4 +12,4 @@ ADD ./yami-shop-admin/target/yami-shop-admin-0.0.1-SNAPSHOT.jar ./
EXPOSE 8085
-CMD java -jar -Xms512m -Xmx512m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -Dspring.profiles.active=docker,quartz yami-shop-admin-0.0.1-SNAPSHOT.jar
\ No newline at end of file
+CMD java -jar -Xms512m -Xmx512m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -Dspring.profiles.active=docker yami-shop-admin-0.0.1-SNAPSHOT.jar
\ No newline at end of file
diff --git a/yami-shop-admin/pom.xml b/yami-shop-admin/pom.xml
index 6140292..2182d71 100644
--- a/yami-shop-admin/pom.xml
+++ b/yami-shop-admin/pom.xml
@@ -32,9 +32,12 @@
${yami.shop.version}
- com.yami.shop
- yami-shop-quartz
- ${yami.shop.version}
+ com.xuxueli
+ xxl-job-core
+
+
+ org.springframework.cloud
+ spring-cloud-commons
diff --git a/yami-shop-admin/src/main/java/com/yami/shop/admin/config/XxlJobConfig.java b/yami-shop-admin/src/main/java/com/yami/shop/admin/config/XxlJobConfig.java
new file mode 100644
index 0000000..17452fa
--- /dev/null
+++ b/yami-shop-admin/src/main/java/com/yami/shop/admin/config/XxlJobConfig.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
+ *
+ * https://www.mall4j.com/
+ *
+ * 未经允许,不可做商业用途!
+ *
+ * 版权所有,侵权必究!
+ */
+package com.yami.shop.admin.config;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cloud.commons.util.InetUtils;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * xxl-job config
+ * 为啥这里的代码要注释掉,因为很奇怪的,因为很多人都不会去下载xxl-job来跑定时任务。
+ * 原本用spring 的 quartz做定时任务的,但是文档写着要忽略数据库大小写,结果很多人根本不看文档,所以干脆就把这个quartz的删掉,然后通过xxl-job执行定时任务
+ * 那么又会带来一个问题,大家也不会看文档,也不会去下载xxl-job,所以要把这里面的代码注掉,要是有人需要的话,改下这里的连接配置,连上xxl-job即可。
+ * 毕竟你都能找到这个文件了,下载xxl-job,修改并启动xxl-job-admin,把取消订单,确认收货之类定时任务加入到里面即可咯。还要把下面的注释掉的代码打开,这样启动项目就会连接xxl-job执行定时任务了。
+ * @author FrozenWatermelon
+ * @date 2021/1/18
+ */
+@Configuration
+public class XxlJobConfig {
+ private final Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
+
+ @Value("${xxl-job.admin.addresses}")
+ private String adminAddresses;
+
+ @Value("${xxl-job.accessToken}")
+ private String accessToken;
+
+ @Value("${xxl-job.logPath}")
+ private String logPath;
+
+ @Value("${server.port}")
+ private int port;
+
+ @Autowired
+ private InetUtils inetUtils;
+
+// @Bean
+// public XxlJobSpringExecutor xxlJobExecutor() {
+//
+// logger.info(">>>>>>>>>>> xxl-job config init.");
+// XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+// xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+// xxlJobSpringExecutor.setAppname("mall4j");
+// // 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP
+// xxlJobSpringExecutor.setIp(inetUtils.findFirstNonLoopbackAddress().getHostAddress());
+// xxlJobSpringExecutor.setPort(port + 1000);
+// xxlJobSpringExecutor.setAccessToken(accessToken);
+// xxlJobSpringExecutor.setLogPath(logPath);
+// xxlJobSpringExecutor.setLogRetentionDays(3);
+// return xxlJobSpringExecutor;
+// }
+
+}
diff --git a/yami-shop-admin/src/main/java/com/yami/shop/admin/task/OrderTask.java b/yami-shop-admin/src/main/java/com/yami/shop/admin/task/OrderTask.java
index 03ea2e5..4e8c558 100644
--- a/yami-shop-admin/src/main/java/com/yami/shop/admin/task/OrderTask.java
+++ b/yami-shop-admin/src/main/java/com/yami/shop/admin/task/OrderTask.java
@@ -13,6 +13,7 @@ package com.yami.shop.admin.task;
import java.util.Date;
import java.util.List;
+import com.xxl.job.core.handler.annotation.XxlJob;
import com.yami.shop.service.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -29,7 +30,11 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
-
+/**
+ * @author FrozenWatermelon
+ * 定时任务的配置,请查看xxl-job的java配置文件。
+ * @see com.yami.shop.admin.config.XxlJobConfig
+ */
@Component("orderTask")
public class OrderTask {
@@ -43,6 +48,7 @@ public class OrderTask {
@Autowired
private SkuService skuService;
+ @XxlJob("cancelOrder")
public void cancelOrder(){
Date now = new Date();
logger.info("取消超时未支付订单。。。");
@@ -64,6 +70,7 @@ public class OrderTask {
/**
* 确认收货
*/
+ @XxlJob("confirmOrder")
public void confirmOrder(){
Date now = new Date();
logger.info("系统自动确认收货订单。。。");
diff --git a/yami-shop-admin/src/main/resources/application-dev.yml b/yami-shop-admin/src/main/resources/application-dev.yml
index 65da3e6..6378b93 100644
--- a/yami-shop-admin/src/main/resources/application-dev.yml
+++ b/yami-shop-admin/src/main/resources/application-dev.yml
@@ -22,3 +22,8 @@ spring:
config: classpath:redisson/redisson.yml
logging:
config: classpath:logback/logback-dev.xml
+xxl-job:
+ accessToken: default_token
+ logPath: /data/applogs/xxl-job/jobhandler
+ admin:
+ addresses: http://localhost:8080/xxl-job-admin
\ No newline at end of file
diff --git a/yami-shop-admin/src/main/resources/application-docker.yml b/yami-shop-admin/src/main/resources/application-docker.yml
index 93b5a7a..78a6a00 100644
--- a/yami-shop-admin/src/main/resources/application-docker.yml
+++ b/yami-shop-admin/src/main/resources/application-docker.yml
@@ -18,3 +18,8 @@ spring:
config: classpath:redisson/redisson-docker.yml
logging:
config: classpath:logback/logback-prod.xml
+xxl-job:
+ accessToken: default_token
+ logPath: /data/applogs/xxl-job/jobhandler
+ admin:
+ addresses: http://localhost:8080/xxl-job-admin
\ No newline at end of file
diff --git a/yami-shop-admin/src/main/resources/application-prod.yml b/yami-shop-admin/src/main/resources/application-prod.yml
index 05652c6..bfa8e0b 100644
--- a/yami-shop-admin/src/main/resources/application-prod.yml
+++ b/yami-shop-admin/src/main/resources/application-prod.yml
@@ -18,3 +18,8 @@ spring:
config: classpath:redisson/redisson.yml
logging:
config: classpath:logback/logback-prod.xml
+xxl-job:
+ accessToken: default_token
+ logPath: /data/applogs/xxl-job/jobhandler
+ admin:
+ addresses: http://localhost:8080/xxl-job-admin
\ No newline at end of file
diff --git a/yami-shop-admin/src/main/resources/application.yml b/yami-shop-admin/src/main/resources/application.yml
index c74b904..ddea8ae 100644
--- a/yami-shop-admin/src/main/resources/application.yml
+++ b/yami-shop-admin/src/main/resources/application.yml
@@ -1,7 +1,7 @@
spring:
- # 环境 dev|test|prod quart定时任务
+ # 环境 dev|test|prod
profiles:
- active: dev,quartz
+ active: dev
#文件上传设置
servlet:
multipart:
diff --git a/yami-shop-quartz/pom.xml b/yami-shop-quartz/pom.xml
deleted file mode 100644
index 944f36b..0000000
--- a/yami-shop-quartz/pom.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
- yami-shop
- com.yami.shop
- 0.0.1-SNAPSHOT
-
- 4.0.0
-
- yami-shop-quartz
-
-
-
- org.quartz-scheduler
- quartz
-
-
- com.yami.shop
- yami-shop-service
- ${yami.shop.version}
-
-
- com.yami.shop
- yami-shop-security-admin
- ${yami.shop.version}
-
-
-
\ No newline at end of file
diff --git a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/config/QuartzCustomizerConfig.java b/yami-shop-quartz/src/main/java/com/yami/shop/quartz/config/QuartzCustomizerConfig.java
deleted file mode 100644
index 0cc1026..0000000
--- a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/config/QuartzCustomizerConfig.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
- *
- * https://www.mall4j.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
-
-package com.yami.shop.quartz.config;
-
-import org.springframework.boot.autoconfigure.quartz.SchedulerFactoryBeanCustomizer;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.scheduling.quartz.SchedulerFactoryBean;
-
-/**
- */
-@Configuration
-public class QuartzCustomizerConfig implements SchedulerFactoryBeanCustomizer {
- @Override
- public void customize(SchedulerFactoryBean schedulerFactoryBean) {
- schedulerFactoryBean.setWaitForJobsToCompleteOnShutdown(true);
- }
-}
diff --git a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/config/QuartzJob.java b/yami-shop-quartz/src/main/java/com/yami/shop/quartz/config/QuartzJob.java
deleted file mode 100644
index 999ae0e..0000000
--- a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/config/QuartzJob.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
- *
- * https://www.mall4j.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
-
-package com.yami.shop.quartz.config;
-
-import com.yami.shop.quartz.event.ScheduleJobEvent;
-import com.yami.shop.quartz.model.ScheduleJob;
-import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
-import org.quartz.DisallowConcurrentExecution;
-import org.quartz.Job;
-import org.quartz.JobExecutionContext;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationEventPublisher;
-import org.springframework.scheduling.annotation.EnableAsync;
-
-/**
- * 该类将会被org.springframework.scheduling.quartz.SpringBeanJobFactory 实例化
- * 并使@Autowired 生效
- */
-@Slf4j
-@DisallowConcurrentExecution
-public class QuartzJob implements Job {
-
- @Autowired
- private ApplicationEventPublisher publisher;
-
- /**
- * 任务调度参数key
- */
- public static final String JOB_PARAM_KEY = "JOB_PARAM_KEY";
-
- @Override
- @SneakyThrows
- public void execute(JobExecutionContext jobExecutionContext) {
- ScheduleJob sysJob = (ScheduleJob) jobExecutionContext.getMergedJobDataMap().get(JOB_PARAM_KEY);
- publisher.publishEvent(new ScheduleJobEvent(sysJob));
- }
-
-}
diff --git a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/config/ScheduleManager.java b/yami-shop-quartz/src/main/java/com/yami/shop/quartz/config/ScheduleManager.java
deleted file mode 100644
index d0c8225..0000000
--- a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/config/ScheduleManager.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
- *
- * https://www.mall4j.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
-
-package com.yami.shop.quartz.config;
-
-import com.yami.shop.quartz.enums.ScheduleStatus;
-import com.yami.shop.quartz.model.ScheduleJob;
-import lombok.AllArgsConstructor;
-import org.quartz.*;
-import org.springframework.stereotype.Component;
-
-/**
- * 定时任务工具类
- *
- * @author lgh
- */
-@Component
-@AllArgsConstructor
-public class ScheduleManager {
- private final static String JOB_NAME = "TASK_";
-
- private final Scheduler scheduler;
-
- /**
- * 获取触发器key
- */
- private TriggerKey getTriggerKey(ScheduleJob scheduleJob) {
- return TriggerKey.triggerKey(JOB_NAME + scheduleJob.getJobId());
- }
-
- /**
- * 获取jobKey
- */
- private JobKey getJobKey(ScheduleJob scheduleJob) {
- return JobKey.jobKey(JOB_NAME + scheduleJob.getJobId());
- }
-
- /**
- * 获取表达式触发器
- */
- public CronTrigger getCronTrigger(ScheduleJob scheduleJob) {
- try {
- return (CronTrigger) scheduler.getTrigger(getTriggerKey(scheduleJob));
- } catch (SchedulerException e) {
- throw new RuntimeException("获取定时任务CronTrigger出现异常", e);
- }
- }
-
- /**
- * 创建定时任务
- */
- public void createScheduleJob(ScheduleJob scheduleJob) {
- try {
- //构建job信息
- JobDetail jobDetail = JobBuilder.newJob(QuartzJob.class).withIdentity(getJobKey(scheduleJob)).build();
-
- //表达式调度构建器,可以根据scheduleJob修改withMisfireHandling方法,但是使用异步执行定时任务,没必要
- CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(scheduleJob.getCronExpression())
- .withMisfireHandlingInstructionFireAndProceed();
-
- //按新的cronExpression表达式构建一个新的trigger
- CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(getTriggerKey(scheduleJob)).withSchedule(scheduleBuilder).build();
-
- //放入参数,运行时的方法可以获取
- jobDetail.getJobDataMap().put(QuartzJob.JOB_PARAM_KEY, scheduleJob);
-
- scheduler.scheduleJob(jobDetail, trigger);
-
- //暂停任务
- if (scheduleJob.getStatus().equals(ScheduleStatus.PAUSE.getType())) {
- pauseJob(scheduleJob);
- }
- } catch (SchedulerException e) {
- throw new RuntimeException("创建定时任务失败", e);
- }
- }
-
- /**
- * 更新定时任务
- */
- public void updateScheduleJob(ScheduleJob scheduleJob) {
- try {
- TriggerKey triggerKey = getTriggerKey(scheduleJob);
-
- //表达式调度构建器
- CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(scheduleJob.getCronExpression()).withMisfireHandlingInstructionFireAndProceed();
-
- CronTrigger trigger = getCronTrigger(scheduleJob);
-
- // 如果定时任务不存在,则创建定时任务
- if (trigger == null) {
- createScheduleJob(scheduleJob);
- return;
- }
-
- //按新的cronExpression表达式重新构建trigger
- trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder).build();
-
- //参数
- trigger.getJobDataMap().put(QuartzJob.JOB_PARAM_KEY, scheduleJob);
-
- scheduler.rescheduleJob(triggerKey, trigger);
-
- //暂停任务
- if (scheduleJob.getStatus().equals(ScheduleStatus.PAUSE.getType())) {
- pauseJob(scheduleJob);
- }
-
- } catch (SchedulerException e) {
- throw new RuntimeException("更新定时任务失败", e);
- }
- }
-
- /**
- * 立即执行任务
- */
- public void run(ScheduleJob scheduleJob) {
- try {
- //参数
- JobDataMap dataMap = new JobDataMap();
- dataMap.put(QuartzJob.JOB_PARAM_KEY, scheduleJob);
-
- scheduler.triggerJob(getJobKey(scheduleJob), dataMap);
- } catch (SchedulerException e) {
- throw new RuntimeException("立即执行定时任务失败", e);
- }
- }
-
- /**
- * 暂停任务
- */
- public void pauseJob(ScheduleJob scheduleJob) {
- try {
- scheduler.pauseJob(getJobKey(scheduleJob));
- } catch (SchedulerException e) {
- throw new RuntimeException("暂停定时任务失败", e);
- }
- }
-
- /**
- * 恢复任务
- */
- public void resumeJob(ScheduleJob scheduleJob) {
- try {
- scheduler.resumeJob(getJobKey(scheduleJob));
- } catch (SchedulerException e) {
- throw new RuntimeException("恢复定时任务失败", e);
- }
- }
-
- /**
- * 删除定时任务
- */
- public void deleteScheduleJob(ScheduleJob scheduleJob) {
- try {
- // 停止触发器
- scheduler.pauseTrigger(getTriggerKey(scheduleJob));
- //移除触发器
- scheduler.unscheduleJob(getTriggerKey(scheduleJob));
- //删除任务
- scheduler.deleteJob(getJobKey(scheduleJob));
- } catch (SchedulerException e) {
- throw new RuntimeException("删除定时任务失败", e);
- }
- }
-
-}
diff --git a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/controller/ScheduleJobController.java b/yami-shop-quartz/src/main/java/com/yami/shop/quartz/controller/ScheduleJobController.java
deleted file mode 100644
index 8e12466..0000000
--- a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/controller/ScheduleJobController.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
- *
- * https://www.mall4j.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
-
-package com.yami.shop.quartz.controller;
-
-import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.yami.shop.common.annotation.SysLog;
-import com.yami.shop.common.exception.YamiShopBindException;
-import com.yami.shop.common.util.PageParam;
-import com.yami.shop.quartz.model.ScheduleJob;
-import com.yami.shop.quartz.service.ScheduleJobService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.Valid;
-
-
-
-/**
- * 定时任务
- * @author lgh
- */
-@Slf4j
-@RestController
-@RequestMapping("/sys/schedule")
-public class ScheduleJobController {
- @Autowired
- private ScheduleJobService scheduleJobService;
-
- /**
- * 定时任务列表
- */
- @GetMapping("/page")
- @PreAuthorize("@pms.hasPermission('sys:schedule:page')")
- public ResponseEntity> page(String beanName,PageParam page){
- IPage scheduleJobs = scheduleJobService.page(page,new LambdaQueryWrapper().like(StrUtil.isNotBlank(beanName),ScheduleJob::getBeanName,beanName));
- return ResponseEntity.ok(scheduleJobs);
- }
-
- /**
- * 定时任务信息
- */
- @GetMapping("/info/{jobId}")
- @PreAuthorize("@pms.hasPermission('sys:schedule:info')")
- public ResponseEntity info(@PathVariable("jobId") Long jobId){
- ScheduleJob schedule = scheduleJobService.getById(jobId);
- return ResponseEntity.ok(schedule);
- }
-
- /**
- * 保存定时任务
- */
- @SysLog("保存定时任务")
- @PostMapping
- @PreAuthorize("@pms.hasPermission('sys:schedule:save')")
- public ResponseEntity save(@RequestBody @Valid ScheduleJob scheduleJob){
-
- int dbAlikeCount = scheduleJobService.count(new LambdaQueryWrapper().eq(ScheduleJob::getBeanName, scheduleJob.getBeanName()).eq(ScheduleJob::getMethodName, scheduleJob.getMethodName()));
- if (dbAlikeCount > 0) {
- throw new YamiShopBindException("定时任务已存在");
- }
-
- scheduleJobService.saveAndStart(scheduleJob);
- return ResponseEntity.ok().build();
- }
-
- /**
- * 修改定时任务
- */
- @SysLog("修改定时任务")
- @PutMapping
- @PreAuthorize("@pms.hasPermission('sys:schedule:update')")
- public ResponseEntity update(@RequestBody @Valid ScheduleJob scheduleJob){
-
- int dbAlikeCount = scheduleJobService.count(new LambdaQueryWrapper().eq(ScheduleJob::getBeanName, scheduleJob.getBeanName()).eq(ScheduleJob::getMethodName, scheduleJob.getMethodName()).ne(ScheduleJob::getJobId,scheduleJob.getJobId()));
- if (dbAlikeCount > 0) {
- throw new YamiShopBindException("定时任务已存在");
- }
-
- scheduleJobService.updateScheduleJob(scheduleJob);
-
- return ResponseEntity.ok().build();
- }
-
- /**
- * 删除定时任务
- */
- @SysLog("删除定时任务")
- @DeleteMapping
- @PreAuthorize("@pms.hasPermission('sys:schedule:delete')")
- public ResponseEntity delete(@RequestBody Long[] jobIds){
- scheduleJobService.deleteBatch(jobIds);
- return ResponseEntity.ok().build();
- }
-
- /**
- * 立即执行任务
- */
- @SysLog("立即执行任务")
- @PostMapping("/run")
- @PreAuthorize("@pms.hasPermission('sys:schedule:run')")
- public ResponseEntity run(@RequestBody Long[] jobIds){
- scheduleJobService.run(jobIds);
- return ResponseEntity.ok().build();
- }
-
- /**
- * 暂停定时任务
- */
- @SysLog("暂停定时任务")
- @PostMapping("/pause")
- @PreAuthorize("@pms.hasPermission('sys:schedule:pause')")
- public ResponseEntity pause(@RequestBody Long[] jobIds){
- scheduleJobService.pause(jobIds);
- return ResponseEntity.ok().build();
- }
-
- /**
- * 恢复定时任务
- */
- @SysLog("恢复定时任务")
- @PostMapping("/resume")
- @PreAuthorize("@pms.hasPermission('sys:schedule:resume')")
- public ResponseEntity resume(@RequestBody Long[] jobIds){
- scheduleJobService.resume(jobIds);
- return ResponseEntity.ok().build();
- }
-
-}
diff --git a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/controller/ScheduleJobLogController.java b/yami-shop-quartz/src/main/java/com/yami/shop/quartz/controller/ScheduleJobLogController.java
deleted file mode 100644
index f61d23f..0000000
--- a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/controller/ScheduleJobLogController.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
- *
- * https://www.mall4j.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
-
-package com.yami.shop.quartz.controller;
-
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.yami.shop.quartz.model.ScheduleJobLog;
-import com.yami.shop.quartz.service.ScheduleJobLogService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-
-import com.yami.shop.common.util.PageParam;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-
-/**
- * 定时任务日志
- * @author lgh
- */
-@RestController
-@RequestMapping("/sys/scheduleLog")
-public class ScheduleJobLogController {
- @Autowired
- private ScheduleJobLogService scheduleJobLogService;
-
- /**
- * 定时任务日志列表
- */
- @GetMapping("/page")
- @PreAuthorize("@pms.hasPermission('sys:schedule:log')")
- public ResponseEntity> page(Long jobId,PageParam page){
- IPage list = scheduleJobLogService.page(page,new LambdaQueryWrapper().eq(jobId != null,ScheduleJobLog::getJobId,jobId));
- return ResponseEntity.ok(list);
- }
-}
diff --git a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/dao/ScheduleJobLogMapper.java b/yami-shop-quartz/src/main/java/com/yami/shop/quartz/dao/ScheduleJobLogMapper.java
deleted file mode 100644
index 1ad4a15..0000000
--- a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/dao/ScheduleJobLogMapper.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
- *
- * https://www.mall4j.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
-
-package com.yami.shop.quartz.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.yami.shop.quartz.model.ScheduleJobLog;
-
-public interface ScheduleJobLogMapper extends BaseMapper {
-
-}
\ No newline at end of file
diff --git a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/dao/ScheduleJobMapper.java b/yami-shop-quartz/src/main/java/com/yami/shop/quartz/dao/ScheduleJobMapper.java
deleted file mode 100644
index 0e911a9..0000000
--- a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/dao/ScheduleJobMapper.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
- *
- * https://www.mall4j.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
-
-package com.yami.shop.quartz.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.yami.shop.quartz.model.ScheduleJob;
-import org.apache.ibatis.annotations.Param;
-
-/**
- * 定时任务,任务调度mapper
- * @author lgh
- */
-public interface ScheduleJobMapper extends BaseMapper {
-
- /**
- * 批量修改任务状态
- * @param jobIds 调度任务id
- * @param status 任务状态
- * @return 修改成功条数
- */
- int updateBatch(@Param("jobIds") Long[] jobIds, @Param("status") int status);
-}
\ No newline at end of file
diff --git a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/enums/ScheduleStatus.java b/yami-shop-quartz/src/main/java/com/yami/shop/quartz/enums/ScheduleStatus.java
deleted file mode 100644
index a3a147f..0000000
--- a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/enums/ScheduleStatus.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
- *
- * https://www.mall4j.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
-
-package com.yami.shop.quartz.enums;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-@Getter
-@AllArgsConstructor
-public enum ScheduleStatus {
-
- /**
- * 正常
- */
- NORMAL(0),
- /**
- * 暂停
- */
- PAUSE(1);
-
- /**
- * 类型
- */
- private final Integer type;
-}
diff --git a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/event/ScheduleJobEvent.java b/yami-shop-quartz/src/main/java/com/yami/shop/quartz/event/ScheduleJobEvent.java
deleted file mode 100644
index 4a650d6..0000000
--- a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/event/ScheduleJobEvent.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
- *
- * https://www.mall4j.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
-
-package com.yami.shop.quartz.event;
-
-import com.yami.shop.quartz.model.ScheduleJob;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * 定时任务事件
- */
-@Getter
-@AllArgsConstructor
-public class ScheduleJobEvent {
-
- private final ScheduleJob scheduleJob;
-}
diff --git a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/listener/SysJobListener.java b/yami-shop-quartz/src/main/java/com/yami/shop/quartz/listener/SysJobListener.java
deleted file mode 100644
index ed3ef13..0000000
--- a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/listener/SysJobListener.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
- *
- * https://www.mall4j.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
-
-package com.yami.shop.quartz.listener;
-
-import cn.hutool.core.date.SystemClock;
-import cn.hutool.core.util.StrUtil;
-import com.yami.shop.quartz.event.ScheduleJobEvent;
-import com.yami.shop.quartz.model.ScheduleJob;
-import com.yami.shop.quartz.model.ScheduleJobLog;
-import com.yami.shop.quartz.service.ScheduleJobLogService;
-import com.yami.shop.quartz.util.SpringBeanTaskUtil;
-import lombok.AllArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.quartz.Trigger;
-import org.springframework.context.event.EventListener;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.scheduling.annotation.EnableAsync;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.Objects;
-
-
-/**
- * 异步监听定时任务事件,解决job线程无故丢失的问题
- */
-@Slf4j
-@Component
-@EnableAsync
-@AllArgsConstructor
-public class SysJobListener {
-
- private final ScheduleJobLogService scheduleJobLogService;
-
- @Async
- @EventListener(ScheduleJobEvent.class)
- public void scheduleJobEventListener(ScheduleJobEvent event) {
- ScheduleJob scheduleJob = event.getScheduleJob();
- if (Objects.isNull(scheduleJob)) {
- return;
- }
- //数据库保存执行记录
- ScheduleJobLog jobLog = new ScheduleJobLog();
- jobLog.setJobId(scheduleJob.getJobId());
- jobLog.setBeanName(scheduleJob.getBeanName());
- jobLog.setMethodName(scheduleJob.getMethodName());
- jobLog.setParams(scheduleJob.getParams());
- jobLog.setCreateTime(new Date());
-
- //任务开始时间
- long startTime = SystemClock.now();
-
- try {
- //执行任务
- log.info("任务准备执行,任务ID:" + scheduleJob.getJobId());
-
- SpringBeanTaskUtil.invokeMethod(scheduleJob);
-
- //任务执行总时长
- long times = SystemClock.now() - startTime;
- jobLog.setTimes((int)times);
- jobLog.setStatus(1);
- StringBuilder sb = new StringBuilder();
-
- log.info(sb.append("任务执行完毕,任务ID:").append(jobLog.getJobId()).append(" 总共耗时:").append(times).append("毫秒").toString());
- } catch (Exception e) {
- log.error("任务执行失败,任务ID:" + scheduleJob.getJobId(), e);
-
- //任务执行总时长
- long times = SystemClock.now() - startTime;
- jobLog.setTimes((int)times);
- jobLog.setStatus(0);
- jobLog.setError(StrUtil.sub(e.toString(), 0, 2000));
- }finally {
- scheduleJobLogService.save(jobLog);
- }
- }
-}
diff --git a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/model/ScheduleJob.java b/yami-shop-quartz/src/main/java/com/yami/shop/quartz/model/ScheduleJob.java
deleted file mode 100644
index e895f47..0000000
--- a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/model/ScheduleJob.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
- *
- * https://www.mall4j.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
-
-package com.yami.shop.quartz.model;
-
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-import javax.validation.constraints.NotBlank;
-import java.io.Serializable;
-import java.util.Date;
-
-@Data
-@TableName("tz_schedule_job")
-public class ScheduleJob implements Serializable {
- /**
- *
- */
- private static final long serialVersionUID = 9150018026309004044L;
-
- /**
- * 任务id
- */
- @TableId
- private Long jobId;
-
- /**
- * spring bean名称
- */
-
- @NotBlank(message="bean名称不能为空")
- private String beanName;
-
- /**
- * 方法名
- */
-
- @NotBlank(message="方法名称不能为空")
- private String methodName;
-
- /**
- * 参数
- */
- private String params;
-
- /**
- * cron表达式
- */
-
- @NotBlank(message="cron表达式不能为空")
- private String cronExpression;
-
- /**
- * 任务状态 0:正常 1:暂停
- */
- private Integer status;
-
- /**
- * 备注
- */
- private String remark;
-
- /**
- * 创建时间
- */
-
- private Date createTime;
-}
\ No newline at end of file
diff --git a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/model/ScheduleJobLog.java b/yami-shop-quartz/src/main/java/com/yami/shop/quartz/model/ScheduleJobLog.java
deleted file mode 100644
index e4e388b..0000000
--- a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/model/ScheduleJobLog.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
- *
- * https://www.mall4j.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
-
-package com.yami.shop.quartz.model;
-
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-import java.util.Date;
-
-@Data
-@TableName("tz_schedule_job_log")
-public class ScheduleJobLog {
- /**
- * 任务日志id
- */
- @TableId
-
- private Long logId;
-
- /**
- * 任务id
- */
-
- private Long jobId;
-
- /**
- * spring bean名称
- */
-
- private String beanName;
-
- /**
- * 方法名
- */
-
- private String methodName;
-
- /**
- * 参数
- */
- private String params;
-
- /**
- * 任务状态 1:成功 0:失败
- */
- private Integer status;
-
- /**
- * 失败信息
- */
- private String error;
-
- /**
- * 耗时(单位:毫秒)
- */
- private Integer times;
-
- /**
- * 创建时间
- */
-
- private Date createTime;
-}
\ No newline at end of file
diff --git a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/service/ScheduleJobLogService.java b/yami-shop-quartz/src/main/java/com/yami/shop/quartz/service/ScheduleJobLogService.java
deleted file mode 100644
index 58ddfb2..0000000
--- a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/service/ScheduleJobLogService.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
- *
- * https://www.mall4j.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
-
-package com.yami.shop.quartz.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.yami.shop.quartz.model.ScheduleJobLog;
-
-/**
- * @author lgh
- */
-public interface ScheduleJobLogService extends IService{
-
-}
diff --git a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/service/ScheduleJobService.java b/yami-shop-quartz/src/main/java/com/yami/shop/quartz/service/ScheduleJobService.java
deleted file mode 100644
index 726dc15..0000000
--- a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/service/ScheduleJobService.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
- *
- * https://www.mall4j.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
-
-package com.yami.shop.quartz.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.yami.shop.quartz.model.ScheduleJob;
-
-/**
- *
- * @author lgh
- *
- */
-public interface ScheduleJobService extends IService{
-
- /**
- * 保存并开始定时任务
- * @param scheduleJob
- */
- void saveAndStart(ScheduleJob scheduleJob);
-
- /**
- * 更新定时任务
- * @param scheduleJob
- */
- void updateScheduleJob(ScheduleJob scheduleJob);
-
- /**
- * 批量删除定时任务
- * @param jobIds 需要删除的job id列表
- */
- void deleteBatch(Long[] jobIds);
-
- /**
- * 批量更新定时任务状态
- * @param jobIds 需要更新的job id列表
- * @param status 更新后的状态
- * @return 更新数量
- */
- int updateBatch(Long[] jobIds, int status);
-
- /**
- * 立即执行
- * @param jobIds job id列表
- */
- void run(Long[] jobIds);
-
- /**
- * 暂停运行
- * @param jobIds job id列表
- */
- void pause(Long[] jobIds);
-
- /**
- * 恢复运行
- * @param jobIds job id列表
- */
- void resume(Long[] jobIds);
-
-}
diff --git a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/service/impl/ScheduleJobLogServiceImpl.java b/yami-shop-quartz/src/main/java/com/yami/shop/quartz/service/impl/ScheduleJobLogServiceImpl.java
deleted file mode 100644
index 79e90fe..0000000
--- a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/service/impl/ScheduleJobLogServiceImpl.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
- *
- * https://www.mall4j.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
-
-package com.yami.shop.quartz.service.impl;
-
-import com.yami.shop.quartz.dao.ScheduleJobLogMapper;
-import com.yami.shop.quartz.model.ScheduleJobLog;
-import com.yami.shop.quartz.service.ScheduleJobLogService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
-/**
- * @author lgh
- */
-@Service("scheduleJobLogService")
-public class ScheduleJobLogServiceImpl extends ServiceImpl implements ScheduleJobLogService {
-
- @Autowired
- private ScheduleJobLogMapper scheduleJobLogMapper;
-
-}
diff --git a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/service/impl/ScheduleJobServiceImpl.java b/yami-shop-quartz/src/main/java/com/yami/shop/quartz/service/impl/ScheduleJobServiceImpl.java
deleted file mode 100644
index d04dd0c..0000000
--- a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/service/impl/ScheduleJobServiceImpl.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
- *
- * https://www.mall4j.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
-
-package com.yami.shop.quartz.service.impl;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.yami.shop.quartz.config.ScheduleManager;
-import com.yami.shop.quartz.dao.ScheduleJobMapper;
-import com.yami.shop.quartz.enums.ScheduleStatus;
-import com.yami.shop.quartz.model.ScheduleJob;
-import com.yami.shop.quartz.service.ScheduleJobService;
-import org.quartz.CronTrigger;
-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.Arrays;
-import java.util.Date;
-import java.util.List;
-
-/**
- *
- * @author lgh
- */
-@Service
-public class ScheduleJobServiceImpl extends ServiceImpl implements ScheduleJobService {
-
- @Autowired
- private ScheduleJobMapper scheduleJobMapper;
- @Autowired
- private ScheduleManager scheduleManager;
- /**
- * 项目启动时,初始化定时器
- */
- @PostConstruct
- public void init(){
- list().forEach(scheduleJob -> {
- CronTrigger trigger = scheduleManager.getCronTrigger(scheduleJob);
- // 如果定时任务不存在,则创建定时任务
- if (trigger == null) {
- scheduleManager.createScheduleJob(scheduleJob);
- } else if (ScheduleStatus.NORMAL.getType().equals(scheduleJob.getStatus())) {
- scheduleManager.resumeJob(scheduleJob);
- } else if (ScheduleStatus.PAUSE.getType().equals(scheduleJob.getStatus())) {
- scheduleManager.pauseJob(scheduleJob);
- }
- });
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void saveAndStart(ScheduleJob scheduleJob) {
- scheduleJob.setCreateTime(new Date());
- scheduleJob.setStatus(ScheduleStatus.NORMAL.getType());
- scheduleJobMapper.insert(scheduleJob);
-
- scheduleManager.createScheduleJob(scheduleJob);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void updateScheduleJob(ScheduleJob scheduleJob) {
- scheduleManager.updateScheduleJob(scheduleJob);
- scheduleJobMapper.updateById(scheduleJob);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void deleteBatch(Long[] jobIds) {
-
- List ids = Arrays.asList(jobIds);
- this.listByIds(ids).forEach(scheduleJob -> {
- scheduleManager.deleteScheduleJob(scheduleJob);
- });
- scheduleJobMapper.deleteBatchIds(ids);
- }
-
- @Override
- public int updateBatch(Long[] jobIds, int status) {
- return scheduleJobMapper.updateBatch(jobIds,status);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void run(Long[] jobIds) {
- for(Long jobId : jobIds){
- scheduleManager.run(scheduleJobMapper.selectById(jobId));
- }
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void pause(Long[] jobIds) {
- this.listByIds(Arrays.asList(jobIds)).forEach(scheduleJob -> {
- scheduleManager.pauseJob(scheduleJob);
- });
-
- updateBatch(jobIds, ScheduleStatus.PAUSE.getType());
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void resume(Long[] jobIds) {
- this.listByIds(Arrays.asList(jobIds)).forEach(scheduleJob -> {
- scheduleManager.resumeJob(scheduleJob);
- });
-
- updateBatch(jobIds, ScheduleStatus.NORMAL.getType());
- }
-}
diff --git a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/util/SpringBeanTaskUtil.java b/yami-shop-quartz/src/main/java/com/yami/shop/quartz/util/SpringBeanTaskUtil.java
deleted file mode 100644
index 09bf2b1..0000000
--- a/yami-shop-quartz/src/main/java/com/yami/shop/quartz/util/SpringBeanTaskUtil.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
- *
- * https://www.mall4j.com/
- *
- * 未经允许,不可做商业用途!
- *
- * 版权所有,侵权必究!
- */
-
-package com.yami.shop.quartz.util;
-
-import cn.hutool.core.util.StrUtil;
-import com.yami.shop.common.util.SpringContextUtils;
-import com.yami.shop.quartz.model.ScheduleJob;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.util.ReflectionUtils;
-
-import java.lang.reflect.Method;
-
-
-/**
- * 定时任务spring bean 执行定时任务
- * @author LGH
- */
-@Slf4j
-public class SpringBeanTaskUtil {
-
- public static void invokeMethod(ScheduleJob scheduleJob) {
- Object target = SpringContextUtils.getBean(scheduleJob.getBeanName());
- try {
- if (StrUtil.isNotEmpty(scheduleJob.getParams())) {
- Method method = target.getClass().getDeclaredMethod(scheduleJob.getMethodName(), String.class);
- ReflectionUtils.makeAccessible(method);
- method.invoke(target, scheduleJob.getParams());
- } else {
- Method method = target.getClass().getDeclaredMethod(scheduleJob.getMethodName());
- ReflectionUtils.makeAccessible(method);
- method.invoke(target);
- }
- } catch (Exception e) {
- log.error("执行定时任务失败:", e);
- throw new RuntimeException("执行定时任务失败", e);
- }
- }
-}
diff --git a/yami-shop-quartz/src/main/resources/application-quartz.yml b/yami-shop-quartz/src/main/resources/application-quartz.yml
deleted file mode 100644
index c2b7366..0000000
--- a/yami-shop-quartz/src/main/resources/application-quartz.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-# 数据源配置
-spring:
- quartz:
- #相关属性配置
- properties:
- org:
- quartz:
- scheduler:
- instanceName: clusteredScheduler
- instanceId: AUTO
- jobStore:
- class: org.springframework.scheduling.quartz.LocalDataSourceJobStore
- driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
- tablePrefix: QRTZ_
- isClustered: true
- clusterCheckinInterval: 10000
- useProperties: false
- misfireThreshold: 12000
- #线程池配置
- threadPool:
- #实现的类名
- class: org.quartz.simpl.SimpleThreadPool
- #线程数量
- threadCount: 3
- #线程优先级
- threadPriority: 5
- #自创建父线程
- threadsInheritContextClassLoaderOfInitializingThread: true
- #数据库方式
- job-store-type: jdbc
\ No newline at end of file
diff --git a/yami-shop-quartz/src/main/resources/mapper/ScheduleJobLogMapper.xml b/yami-shop-quartz/src/main/resources/mapper/ScheduleJobLogMapper.xml
deleted file mode 100644
index 152f6cf..0000000
--- a/yami-shop-quartz/src/main/resources/mapper/ScheduleJobLogMapper.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/yami-shop-quartz/src/main/resources/mapper/ScheduleJobMapper.xml b/yami-shop-quartz/src/main/resources/mapper/ScheduleJobMapper.xml
deleted file mode 100644
index 00f66ff..0000000
--- a/yami-shop-quartz/src/main/resources/mapper/ScheduleJobMapper.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- update tz_schedule_job set status = #{status} where job_id in
-
- #{jobId}
-
-
-
\ No newline at end of file