瀏覽代碼

更新调度表结构前缀,校验大字段长度

xueli.xue 9 年之前
父節點
當前提交
832c94d64c

+ 1 - 1
README.md 查看文件

@@ -29,5 +29,5 @@ git.osc地址:http://git.oschina.net/xuxueli0323/xxl-job
29 29
 	
30 30
 # 其他说明
31 31
 	清楚僵尸任务:qrtz_cron_triggers、qrtz_triggers、qrtz_job_details顺序删除
32
-	V1.2新增任务日志,记得执行“qrtz_trigger_log”生成表结构
32
+	V1.2新增任务日志,记得执行“tables_xxl_log.sql”生成表结构
33 33
 	

+ 17 - 17
doc/db/tables_xxl_log.sql 查看文件

@@ -11,7 +11,7 @@
11 11
 # DROP TABLE IF EXISTS XXL_JOB_QRTZ_CALENDARS;
12 12
 # DROP TABLE IF EXISTS `xxl_job_qrtz_trigger_log`;
13 13
 
14
-CREATE TABLE QRTZ_JOB_DETAILS
14
+CREATE TABLE XXL_JOB_QRTZ_JOB_DETAILS
15 15
   (
16 16
     SCHED_NAME VARCHAR(120) NOT NULL,
17 17
     JOB_NAME  VARCHAR(200) NOT NULL,
@@ -26,7 +26,7 @@ CREATE TABLE QRTZ_JOB_DETAILS
26 26
     PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
27 27
 );
28 28
 
29
-CREATE TABLE QRTZ_TRIGGERS
29
+CREATE TABLE XXL_JOB_QRTZ_TRIGGERS
30 30
   (
31 31
     SCHED_NAME VARCHAR(120) NOT NULL,
32 32
     TRIGGER_NAME VARCHAR(200) NOT NULL,
@@ -46,10 +46,10 @@ CREATE TABLE QRTZ_TRIGGERS
46 46
     JOB_DATA BLOB NULL,
47 47
     PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
48 48
     FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
49
-        REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)
49
+        REFERENCES XXL_JOB_QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)
50 50
 );
51 51
 
52
-CREATE TABLE QRTZ_SIMPLE_TRIGGERS
52
+CREATE TABLE XXL_JOB_QRTZ_SIMPLE_TRIGGERS
53 53
   (
54 54
     SCHED_NAME VARCHAR(120) NOT NULL,
55 55
     TRIGGER_NAME VARCHAR(200) NOT NULL,
@@ -59,10 +59,10 @@ CREATE TABLE QRTZ_SIMPLE_TRIGGERS
59 59
     TIMES_TRIGGERED BIGINT(10) NOT NULL,
60 60
     PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
61 61
     FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
62
-        REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
62
+        REFERENCES XXL_JOB_QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
63 63
 );
64 64
 
65
-CREATE TABLE QRTZ_CRON_TRIGGERS
65
+CREATE TABLE XXL_JOB_QRTZ_CRON_TRIGGERS
66 66
   (
67 67
     SCHED_NAME VARCHAR(120) NOT NULL,
68 68
     TRIGGER_NAME VARCHAR(200) NOT NULL,
@@ -71,10 +71,10 @@ CREATE TABLE QRTZ_CRON_TRIGGERS
71 71
     TIME_ZONE_ID VARCHAR(80),
72 72
     PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
73 73
     FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
74
-        REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
74
+        REFERENCES XXL_JOB_QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
75 75
 );
76 76
 
77
-CREATE TABLE QRTZ_SIMPROP_TRIGGERS
77
+CREATE TABLE XXL_JOB_QRTZ_SIMPROP_TRIGGERS
78 78
   (          
79 79
     SCHED_NAME VARCHAR(120) NOT NULL,
80 80
     TRIGGER_NAME VARCHAR(200) NOT NULL,
@@ -92,10 +92,10 @@ CREATE TABLE QRTZ_SIMPROP_TRIGGERS
92 92
     BOOL_PROP_2 VARCHAR(1) NULL,
93 93
     PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
94 94
     FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 
95
-    REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
95
+    REFERENCES XXL_JOB_QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
96 96
 );
97 97
 
98
-CREATE TABLE QRTZ_BLOB_TRIGGERS
98
+CREATE TABLE XXL_JOB_QRTZ_BLOB_TRIGGERS
99 99
   (
100 100
     SCHED_NAME VARCHAR(120) NOT NULL,
101 101
     TRIGGER_NAME VARCHAR(200) NOT NULL,
@@ -103,10 +103,10 @@ CREATE TABLE QRTZ_BLOB_TRIGGERS
103 103
     BLOB_DATA BLOB NULL,
104 104
     PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
105 105
     FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
106
-        REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
106
+        REFERENCES XXL_JOB_QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
107 107
 );
108 108
 
109
-CREATE TABLE QRTZ_CALENDARS
109
+CREATE TABLE XXL_JOB_QRTZ_CALENDARS
110 110
   (
111 111
     SCHED_NAME VARCHAR(120) NOT NULL,
112 112
     CALENDAR_NAME  VARCHAR(200) NOT NULL,
@@ -114,14 +114,14 @@ CREATE TABLE QRTZ_CALENDARS
114 114
     PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)
115 115
 );
116 116
 
117
-CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS
117
+CREATE TABLE XXL_JOB_QRTZ_PAUSED_TRIGGER_GRPS
118 118
   (
119 119
     SCHED_NAME VARCHAR(120) NOT NULL,
120 120
     TRIGGER_GROUP  VARCHAR(200) NOT NULL, 
121 121
     PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)
122 122
 );
123 123
 
124
-CREATE TABLE QRTZ_FIRED_TRIGGERS
124
+CREATE TABLE XXL_JOB_QRTZ_FIRED_TRIGGERS
125 125
   (
126 126
     SCHED_NAME VARCHAR(120) NOT NULL,
127 127
     ENTRY_ID VARCHAR(95) NOT NULL,
@@ -139,7 +139,7 @@ CREATE TABLE QRTZ_FIRED_TRIGGERS
139 139
     PRIMARY KEY (SCHED_NAME,ENTRY_ID)
140 140
 );
141 141
 
142
-CREATE TABLE QRTZ_SCHEDULER_STATE
142
+CREATE TABLE XXL_JOB_QRTZ_SCHEDULER_STATE
143 143
   (
144 144
     SCHED_NAME VARCHAR(120) NOT NULL,
145 145
     INSTANCE_NAME VARCHAR(200) NOT NULL,
@@ -148,7 +148,7 @@ CREATE TABLE QRTZ_SCHEDULER_STATE
148 148
     PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)
149 149
 );
150 150
 
151
-CREATE TABLE QRTZ_LOCKS
151
+CREATE TABLE XXL_JOB_QRTZ_LOCKS
152 152
   (
153 153
     SCHED_NAME VARCHAR(120) NOT NULL,
154 154
     LOCK_NAME  VARCHAR(40) NOT NULL, 
@@ -156,7 +156,7 @@ CREATE TABLE QRTZ_LOCKS
156 156
 );
157 157
 
158 158
 
159
-CREATE TABLE `qrtz_trigger_log` (
159
+CREATE TABLE `xxl_job_qrtz_trigger_log` (
160 160
   `id` int(11) NOT NULL AUTO_INCREMENT,
161 161
   `job_name` varchar(255) NOT NULL,
162 162
   `job_cron` varchar(128) DEFAULT NULL,

+ 6 - 6
xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml 查看文件

@@ -35,7 +35,7 @@
35 35
 	</sql>
36 36
 	
37 37
 	<insert id="save" parameterType="com.xxl.job.core.model.XxlJobLog" useGeneratedKeys="true" keyProperty="id" >
38
-		INSERT INTO `qrtz_trigger_log` (
38
+		INSERT INTO `xxl_job_qrtz_trigger_log` (
39 39
 			`job_name`, 
40 40
 			`job_cron`, 
41 41
 			`job_class`, 
@@ -53,12 +53,12 @@
53 53
 	
54 54
 	<select id="load" parameterType="java.lang.Integer" resultMap="XxlJobLog">
55 55
 		SELECT <include refid="Base_Column_List" />
56
-		FROM qrtz_trigger_log AS t
56
+		FROM xxl_job_qrtz_trigger_log AS t
57 57
 		WHERE t.id = #{id}
58 58
 	</select>
59 59
 	
60 60
 	<update id="updateTriggerInfo">
61
-		UPDATE `qrtz_trigger_log` 
61
+		UPDATE `xxl_job_qrtz_trigger_log` 
62 62
 		SET 
63 63
 			`trigger_time`= #{triggerTime}, 
64 64
 			`trigger_status`= #{triggerStatus}, 
@@ -67,7 +67,7 @@
67 67
 	</update>
68 68
 	
69 69
 	<update id="updateHandleInfo">
70
-		UPDATE `qrtz_trigger_log` 
70
+		UPDATE `xxl_job_qrtz_trigger_log` 
71 71
 		SET 
72 72
 			`handle_time`= #{handleTime}, 
73 73
 			`handle_status`= #{handleStatus}, 
@@ -77,7 +77,7 @@
77 77
 	
78 78
 	<select id="pageList" parameterType="java.util.HashMap" resultMap="XxlJobLog">
79 79
 		SELECT <include refid="Base_Column_List" />
80
-		FROM qrtz_trigger_log AS t
80
+		FROM xxl_job_qrtz_trigger_log AS t
81 81
 		<trim prefix="WHERE" prefixOverrides="AND | OR" >
82 82
 			<if test="jobName != null and jobName!=''">
83 83
 				AND t.job_name = #{jobName}
@@ -95,7 +95,7 @@
95 95
 	
96 96
 	<select id="pageListCount" parameterType="java.util.HashMap" resultType="int">
97 97
 		SELECT count(1)
98
-		FROM qrtz_trigger_log AS t
98
+		FROM xxl_job_qrtz_trigger_log AS t
99 99
 		<trim prefix="WHERE" prefixOverrides="AND | OR" >
100 100
 			<if test="jobName != null and jobName!=''">
101 101
 				AND t.job_name = #{jobName}

+ 9 - 0
xxl-job-admin/src/main/java/com/xxl/job/dao/impl/XxlJobLogDaoImpl.java 查看文件

@@ -20,6 +20,9 @@ public class XxlJobLogDaoImpl implements IXxlJobLogDao {
20 20
 
21 21
 	@Override
22 22
 	public int save(XxlJobLog xxlJobLog) {
23
+		if (xxlJobLog!=null && xxlJobLog.getJobData().length()>2000) {
24
+			xxlJobLog.setJobData(xxlJobLog.getJobData().substring(0, 2000));
25
+		}
23 26
 		return sqlSessionTemplate.insert("XxlJobLogMapper.save", xxlJobLog);
24 27
 	}
25 28
 
@@ -30,11 +33,17 @@ public class XxlJobLogDaoImpl implements IXxlJobLogDao {
30 33
 
31 34
 	@Override
32 35
 	public int updateTriggerInfo(XxlJobLog xxlJobLog) {
36
+		if (xxlJobLog!=null && xxlJobLog.getTriggerMsg().length()>2000) {
37
+			xxlJobLog.setTriggerMsg(xxlJobLog.getTriggerMsg().substring(0, 2000));
38
+		}
33 39
 		return sqlSessionTemplate.update("XxlJobLogMapper.updateTriggerInfo", xxlJobLog);
34 40
 	}
35 41
 
36 42
 	@Override
37 43
 	public int updateHandleInfo(XxlJobLog xxlJobLog) {
44
+		if (xxlJobLog!=null && xxlJobLog.getHandleMsg().length()>2000) {
45
+			xxlJobLog.setHandleMsg(xxlJobLog.getHandleMsg().substring(0, 2000));
46
+		}
38 47
 		return sqlSessionTemplate.update("XxlJobLogMapper.updateHandleInfo", xxlJobLog);
39 48
 	}
40 49
 

+ 1 - 1
xxl-job-admin/src/main/java/com/xxl/job/service/job/HttpJobBean.java 查看文件

@@ -69,7 +69,7 @@ public class HttpJobBean extends QuartzJobBean {
69 69
 		
70 70
 		jobLog.setTriggerTime(new Date());
71 71
 		jobLog.setTriggerStatus(HttpUtil.FAIL);
72
-		jobLog.setTriggerMsg(exceptionMsg);
72
+		jobLog.setTriggerMsg("[responseMsg]:"+responseMsg+"<br>[exceptionMsg]:"+exceptionMsg);
73 73
 		if (StringUtils.isNotBlank(responseMsg)) {
74 74
 			@SuppressWarnings("unchecked")
75 75
 			Map<String, String> responseMap = JacksonUtil.readValue(responseMsg, Map.class);

+ 1 - 1
xxl-job-admin/src/main/resources/quartz.properties 查看文件

@@ -18,7 +18,7 @@ org.quartz.jobStore.misfireThreshold: 60000
18 18
 #org.quartz.jobStore.class: org.quartz.simpl.RAMJobStore
19 19
 
20 20
 # for cluster
21
-#org.quartz.jobStore.tablePrefix = WED_qrtz_
21
+org.quartz.jobStore.tablePrefix = XXL_JOB_QRTZ_
22 22
 org.quartz.scheduler.instanceId: AUTO
23 23
 org.quartz.jobStore.class: org.quartz.impl.jdbcjobstore.JobStoreTX
24 24
 org.quartz.jobStore.isClustered: true

+ 13 - 7
xxl-job-client/src/main/java/com/xxl/job/client/util/HttpUtil.java 查看文件

@@ -43,9 +43,11 @@ public class HttpUtil {
43 43
 		String exceptionMsg = null;
44 44
 		
45 45
 		// do post
46
-		HttpPost httpPost = new HttpPost(reqURL);
47
-		CloseableHttpClient httpClient = HttpClients.createDefault();
46
+		HttpPost httpPost = null;
47
+		CloseableHttpClient httpClient = null;
48 48
 		try{
49
+			httpPost = new HttpPost(reqURL);
50
+			httpClient = HttpClients.createDefault();
49 51
 			if (params != null && !params.isEmpty()) {
50 52
 				List<NameValuePair> formParams = new ArrayList<NameValuePair>();
51 53
 				for(Map.Entry<String,String> entry : params.entrySet()){
@@ -68,11 +70,15 @@ public class HttpUtil {
68 70
 			e.printStackTrace(new PrintWriter(out));
69 71
 			exceptionMsg = out.toString();
70 72
 		} finally{
71
-			httpPost.releaseConnection();
72
-			try {
73
-				httpClient.close();
74
-			} catch (IOException e) {
75
-				e.printStackTrace();
73
+			if (httpPost!=null) {
74
+				httpPost.releaseConnection();
75
+			}
76
+			if (httpClient!=null) {
77
+				try {
78
+					httpClient.close();
79
+				} catch (IOException e) {
80
+					e.printStackTrace();
81
+				}
76 82
 			}
77 83
 		}
78 84