Browse Source

将数据库所有的qrtz_*表的数据清除,在启动项目的时候判断是否插入定时任务,进行插入,fixed #I10EZ0

OPGame 6 years ago
parent
commit
f7d8811a23

+ 40 - 21
db/yami_shop.sql

@@ -3,6 +3,7 @@ SQLyog Ultimate v12.5.1 (64 bit)
 MySQL - 5.7.23 : Database - yami_shops
 *********************************************************************
 */
+
 create database IF NOT EXISTS `yami_shops` default character set utf8 collate utf8_general_ci;
 
 USE yami_shops;
@@ -17,6 +18,8 @@ USE yami_shops;
 /*!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` (
@@ -60,10 +63,6 @@ CREATE TABLE `qrtz_cron_triggers` (
 
 /*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`;
@@ -115,10 +114,6 @@ CREATE TABLE `qrtz_job_details` (
 
 /*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','��\0sr\0org.quartz.JobDataMap���迩��\0\0xr\0&org.quartz.utils.StringKeyDirtyFlagMap�����](\0Z\0allowsTransientDataxr\0org.quartz.utils.DirtyFlagMap�.�(v\n�\0Z\0dirtyL\0mapt\0Ljava/util/Map;xpsr\0java.util.HashMap���`�\0F\0\nloadFactorI\0	thresholdxp?@\0\0\0\0\0w\0\0\0\0\0\0t\0\rJOB_PARAM_KEYsr\0&com.yami.shop.quartz.model.ScheduleJob~�dꂑ�\0L\0beanNamet\0Ljava/lang/String;L\0\ncreateTimet\0Ljava/util/Date;L\0cronExpressionq\0~\0	L\0jobIdt\0Ljava/lang/Long;L\0\nmethodNameq\0~\0	L\0paramsq\0~\0	L\0remarkq\0~\0	L\0statust\0Ljava/lang/Integer;xpt\0	orderTaskpt\00 * * * * ?sr\0java.lang.Long;��̏#�\0J\0valuexr\0java.lang.Number������\0\0xp\0\0\0\0\0\0\0t\0cancelOrdert\0\0t\0取消超时未支付订单sr\0java.lang.Integer⠤���8\0I\0valuexq\0~\0\0\0\0\0x\0'),
-('clusteredScheduler','TASK_16','DEFAULT',NULL,'com.yami.shop.quartz.config.QuartzJob','0','1','0','0','��\0sr\0org.quartz.JobDataMap���迩��\0\0xr\0&org.quartz.utils.StringKeyDirtyFlagMap�����](\0Z\0allowsTransientDataxr\0org.quartz.utils.DirtyFlagMap�.�(v\n�\0Z\0dirtyL\0mapt\0Ljava/util/Map;xpsr\0java.util.HashMap���`�\0F\0\nloadFactorI\0	thresholdxp?@\0\0\0\0\0w\0\0\0\0\0\0t\0\rJOB_PARAM_KEYsr\0&com.yami.shop.quartz.model.ScheduleJob~�dꂑ�\0L\0beanNamet\0Ljava/lang/String;L\0\ncreateTimet\0Ljava/util/Date;L\0cronExpressionq\0~\0	L\0jobIdt\0Ljava/lang/Long;L\0\nmethodNameq\0~\0	L\0paramsq\0~\0	L\0remarkq\0~\0	L\0statust\0Ljava/lang/Integer;xpt\0	orderTaskpt\0\r0 0/5 * * * ?sr\0java.lang.Long;��̏#�\0J\0valuexr\0java.lang.Number������\0\0xp\0\0\0\0\0\0\0t\0confirmOrdert\0\0t\0系统自动确认收货订单sr\0java.lang.Integer⠤���8\0I\0valuexq\0~\0\0\0\0\0x\0');
-
 /*Table structure for table `qrtz_locks` */
 
 DROP TABLE IF EXISTS `qrtz_locks`;
@@ -131,10 +126,6 @@ CREATE TABLE `qrtz_locks` (
 
 /*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`;
@@ -161,9 +152,6 @@ CREATE TABLE `qrtz_scheduler_state` (
 
 /*Data for the table `qrtz_scheduler_state` */
 
-insert  into `qrtz_scheduler_state`(`SCHED_NAME`,`INSTANCE_NAME`,`LAST_CHECKIN_TIME`,`CHECKIN_INTERVAL`) values 
-('clusteredScheduler','DESKTOP-1HK3TCV1565167178497',1565168967434,10000);
-
 /*Table structure for table `qrtz_simple_triggers` */
 
 DROP TABLE IF EXISTS `qrtz_simple_triggers`;
@@ -245,10 +233,6 @@ CREATE TABLE `qrtz_triggers` (
 
 /*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,1565169000000,1565168940000,5,'WAITING','CRON',1565168511000,0,NULL,1,''),
-('clusteredScheduler','TASK_16','DEFAULT','TASK_16','DEFAULT',NULL,1565169000000,1565168700000,5,'WAITING','CRON',1565168517000,0,NULL,1,'');
-
 /*Table structure for table `tz_app_connect` */
 
 DROP TABLE IF EXISTS `tz_app_connect`;
@@ -4737,7 +4721,7 @@ CREATE TABLE `tz_schedule_job_log` (
   `create_time` datetime DEFAULT NULL COMMENT '创建时间',
   PRIMARY KEY (`log_id`),
   KEY `job_id` (`job_id`)
-) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COMMENT='定时任务日志';
+) ENGINE=InnoDB AUTO_INCREMENT=46 DEFAULT CHARSET=utf8 COMMENT='定时任务日志';
 
 /*Data for the table `tz_schedule_job_log` */
 
@@ -4751,7 +4735,42 @@ insert  into `tz_schedule_job_log`(`log_id`,`job_id`,`bean_name`,`method_name`,`
 (7,14,'orderTask','cancelOrder','',1,NULL,3,'2019-08-07 17:06:00'),
 (8,14,'orderTask','cancelOrder','',1,NULL,5,'2019-08-07 17:07:00'),
 (9,14,'orderTask','cancelOrder','',1,NULL,3,'2019-08-07 17:08:00'),
-(10,14,'orderTask','cancelOrder','',1,NULL,4,'2019-08-07 17:09:00');
+(10,14,'orderTask','cancelOrder','',1,NULL,4,'2019-08-07 17:09:00'),
+(11,14,'orderTask','cancelOrder','',1,NULL,9,'2019-08-07 17:10:00'),
+(12,16,'orderTask','confirmOrder','',1,NULL,2,'2019-08-07 17:10:00'),
+(13,14,'orderTask','cancelOrder','',1,NULL,4,'2019-08-07 17:11:00'),
+(14,14,'orderTask','cancelOrder','',1,NULL,6,'2019-08-07 17:12:00'),
+(15,14,'orderTask','cancelOrder','',1,NULL,2,'2019-08-07 17:13:00'),
+(16,14,'orderTask','cancelOrder','',1,NULL,3,'2019-08-07 17:14:00'),
+(17,14,'orderTask','cancelOrder','',1,NULL,19,'2019-08-07 17:15:00'),
+(18,16,'orderTask','confirmOrder','',1,NULL,12,'2019-08-07 17:15:00'),
+(19,14,'orderTask','cancelOrder','',1,NULL,3,'2019-08-07 17:16:00'),
+(20,14,'orderTask','cancelOrder','',1,NULL,0,'2019-08-07 17:17:00'),
+(21,14,'orderTask','cancelOrder','',1,NULL,4,'2019-08-07 17:18:00'),
+(22,14,'orderTask','cancelOrder','',1,NULL,2,'2019-08-07 17:19:00'),
+(23,14,'orderTask','cancelOrder','',1,NULL,27,'2019-08-07 17:20:00'),
+(24,16,'orderTask','confirmOrder','',1,NULL,15,'2019-08-07 17:20:00'),
+(25,14,'orderTask','cancelOrder','',1,NULL,5,'2019-08-07 17:21:00'),
+(26,14,'orderTask','cancelOrder','',1,NULL,5,'2019-08-07 17:22:00'),
+(27,14,'orderTask','cancelOrder','',1,NULL,8,'2019-08-07 17:23:00'),
+(28,14,'orderTask','cancelOrder','',1,NULL,4,'2019-08-07 17:24:00'),
+(29,14,'orderTask','cancelOrder','',1,NULL,7,'2019-08-07 17:25:00'),
+(30,16,'orderTask','confirmOrder','',1,NULL,4,'2019-08-07 17:25:00'),
+(31,14,'orderTask','cancelOrder','',1,NULL,1,'2019-08-07 17:26:00'),
+(32,14,'orderTask','cancelOrder','',1,NULL,2,'2019-08-07 17:27:00'),
+(33,14,'orderTask','cancelOrder','',1,NULL,4,'2019-08-07 17:28:00'),
+(34,14,'orderTask','cancelOrder','',1,NULL,8,'2019-08-07 17:29:00'),
+(35,14,'orderTask','cancelOrder','',1,NULL,5,'2019-08-07 17:30:00'),
+(36,16,'orderTask','confirmOrder','',1,NULL,2,'2019-08-07 17:30:00'),
+(37,14,'orderTask','cancelOrder','',1,NULL,3,'2019-08-07 17:31:00'),
+(38,14,'orderTask','cancelOrder','',1,NULL,2,'2019-08-07 17:32:00'),
+(39,14,'orderTask','cancelOrder','',1,NULL,2,'2019-08-07 17:33:00'),
+(40,14,'orderTask','cancelOrder','',1,NULL,5,'2019-08-07 17:34:00'),
+(41,14,'orderTask','cancelOrder','',1,NULL,10,'2019-08-07 17:35:00'),
+(42,16,'orderTask','confirmOrder','',1,NULL,3,'2019-08-07 17:35:00'),
+(43,14,'orderTask','cancelOrder','',1,NULL,5,'2019-08-07 17:36:00'),
+(44,14,'orderTask','cancelOrder','',1,NULL,6,'2019-08-07 17:37:00'),
+(45,14,'orderTask','cancelOrder','',1,NULL,6,'2019-08-07 17:38:00');
 
 /*Table structure for table `tz_shop_detail` */
 

+ 1 - 1
yami-shop-quartz/src/main/java/com/yami/shop/quartz/config/ScheduleManager.java

@@ -45,7 +45,7 @@ public class ScheduleManager {
     /**
      * 获取表达式触发器
      */
-    private CronTrigger getCronTrigger(ScheduleJob scheduleJob) {
+    public CronTrigger getCronTrigger(ScheduleJob scheduleJob) {
         try {
             return (CronTrigger) scheduler.getTrigger(getTriggerKey(scheduleJob));
         } catch (SchedulerException e) {

+ 6 - 1
yami-shop-quartz/src/main/java/com/yami/shop/quartz/service/impl/ScheduleJobServiceImpl.java

@@ -16,6 +16,7 @@ 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;
@@ -42,7 +43,11 @@ public class ScheduleJobServiceImpl extends ServiceImpl<ScheduleJobMapper, Sched
 	@PostConstruct
 	public void init(){
 		list().forEach(scheduleJob -> {
-			if (ScheduleStatus.NORMAL.getType().equals(scheduleJob.getStatus())) {
+			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);