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

master
xueli.xue 9 years ago
parent d802ecb274
commit 832c94d64c
  1. 2
      README.md
  2. 34
      doc/db/tables_xxl_log.sql
  3. 12
      xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml
  4. 9
      xxl-job-admin/src/main/java/com/xxl/job/dao/impl/XxlJobLogDaoImpl.java
  5. 2
      xxl-job-admin/src/main/java/com/xxl/job/service/job/HttpJobBean.java
  6. 2
      xxl-job-admin/src/main/resources/quartz.properties
  7. 20
      xxl-job-client/src/main/java/com/xxl/job/client/util/HttpUtil.java

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

@ -11,7 +11,7 @@
# DROP TABLE IF EXISTS XXL_JOB_QRTZ_CALENDARS;
# DROP TABLE IF EXISTS `xxl_job_qrtz_trigger_log`;
CREATE TABLE QRTZ_JOB_DETAILS
CREATE TABLE XXL_JOB_QRTZ_JOB_DETAILS
(
SCHED_NAME VARCHAR(120) NOT NULL,
JOB_NAME VARCHAR(200) NOT NULL,
@ -26,7 +26,7 @@ CREATE TABLE QRTZ_JOB_DETAILS
PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
);
CREATE TABLE QRTZ_TRIGGERS
CREATE TABLE XXL_JOB_QRTZ_TRIGGERS
(
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
@ -46,10 +46,10 @@ CREATE TABLE QRTZ_TRIGGERS
JOB_DATA BLOB NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)
REFERENCES XXL_JOB_QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)
);
CREATE TABLE QRTZ_SIMPLE_TRIGGERS
CREATE TABLE XXL_JOB_QRTZ_SIMPLE_TRIGGERS
(
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
@ -59,10 +59,10 @@ CREATE TABLE QRTZ_SIMPLE_TRIGGERS
TIMES_TRIGGERED BIGINT(10) NOT NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES XXL_JOB_QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
);
CREATE TABLE QRTZ_CRON_TRIGGERS
CREATE TABLE XXL_JOB_QRTZ_CRON_TRIGGERS
(
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
@ -71,10 +71,10 @@ CREATE TABLE QRTZ_CRON_TRIGGERS
TIME_ZONE_ID VARCHAR(80),
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES XXL_JOB_QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
);
CREATE TABLE QRTZ_SIMPROP_TRIGGERS
CREATE TABLE XXL_JOB_QRTZ_SIMPROP_TRIGGERS
(
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
@ -92,10 +92,10 @@ CREATE TABLE QRTZ_SIMPROP_TRIGGERS
BOOL_PROP_2 VARCHAR(1) NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES XXL_JOB_QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
);
CREATE TABLE QRTZ_BLOB_TRIGGERS
CREATE TABLE XXL_JOB_QRTZ_BLOB_TRIGGERS
(
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
@ -103,10 +103,10 @@ CREATE TABLE QRTZ_BLOB_TRIGGERS
BLOB_DATA BLOB NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES XXL_JOB_QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
);
CREATE TABLE QRTZ_CALENDARS
CREATE TABLE XXL_JOB_QRTZ_CALENDARS
(
SCHED_NAME VARCHAR(120) NOT NULL,
CALENDAR_NAME VARCHAR(200) NOT NULL,
@ -114,14 +114,14 @@ CREATE TABLE QRTZ_CALENDARS
PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)
);
CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS
CREATE TABLE XXL_JOB_QRTZ_PAUSED_TRIGGER_GRPS
(
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)
);
CREATE TABLE QRTZ_FIRED_TRIGGERS
CREATE TABLE XXL_JOB_QRTZ_FIRED_TRIGGERS
(
SCHED_NAME VARCHAR(120) NOT NULL,
ENTRY_ID VARCHAR(95) NOT NULL,
@ -139,7 +139,7 @@ CREATE TABLE QRTZ_FIRED_TRIGGERS
PRIMARY KEY (SCHED_NAME,ENTRY_ID)
);
CREATE TABLE QRTZ_SCHEDULER_STATE
CREATE TABLE XXL_JOB_QRTZ_SCHEDULER_STATE
(
SCHED_NAME VARCHAR(120) NOT NULL,
INSTANCE_NAME VARCHAR(200) NOT NULL,
@ -148,7 +148,7 @@ CREATE TABLE QRTZ_SCHEDULER_STATE
PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)
);
CREATE TABLE QRTZ_LOCKS
CREATE TABLE XXL_JOB_QRTZ_LOCKS
(
SCHED_NAME VARCHAR(120) NOT NULL,
LOCK_NAME VARCHAR(40) NOT NULL,
@ -156,7 +156,7 @@ CREATE TABLE QRTZ_LOCKS
);
CREATE TABLE `qrtz_trigger_log` (
CREATE TABLE `xxl_job_qrtz_trigger_log` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`job_name` varchar(255) NOT NULL,
`job_cron` varchar(128) DEFAULT NULL,

@ -35,7 +35,7 @@
</sql>
<insert id="save" parameterType="com.xxl.job.core.model.XxlJobLog" useGeneratedKeys="true" keyProperty="id" >
INSERT INTO `qrtz_trigger_log` (
INSERT INTO `xxl_job_qrtz_trigger_log` (
`job_name`,
`job_cron`,
`job_class`,
@ -53,12 +53,12 @@
<select id="load" parameterType="java.lang.Integer" resultMap="XxlJobLog">
SELECT <include refid="Base_Column_List" />
FROM qrtz_trigger_log AS t
FROM xxl_job_qrtz_trigger_log AS t
WHERE t.id = #{id}
</select>
<update id="updateTriggerInfo">
UPDATE `qrtz_trigger_log`
UPDATE `xxl_job_qrtz_trigger_log`
SET
`trigger_time`= #{triggerTime},
`trigger_status`= #{triggerStatus},
@ -67,7 +67,7 @@
</update>
<update id="updateHandleInfo">
UPDATE `qrtz_trigger_log`
UPDATE `xxl_job_qrtz_trigger_log`
SET
`handle_time`= #{handleTime},
`handle_status`= #{handleStatus},
@ -77,7 +77,7 @@
<select id="pageList" parameterType="java.util.HashMap" resultMap="XxlJobLog">
SELECT <include refid="Base_Column_List" />
FROM qrtz_trigger_log AS t
FROM xxl_job_qrtz_trigger_log AS t
<trim prefix="WHERE" prefixOverrides="AND | OR" >
<if test="jobName != null and jobName!=''">
AND t.job_name = #{jobName}
@ -95,7 +95,7 @@
<select id="pageListCount" parameterType="java.util.HashMap" resultType="int">
SELECT count(1)
FROM qrtz_trigger_log AS t
FROM xxl_job_qrtz_trigger_log AS t
<trim prefix="WHERE" prefixOverrides="AND | OR" >
<if test="jobName != null and jobName!=''">
AND t.job_name = #{jobName}

@ -20,6 +20,9 @@ public class XxlJobLogDaoImpl implements IXxlJobLogDao {
@Override
public int save(XxlJobLog xxlJobLog) {
if (xxlJobLog!=null && xxlJobLog.getJobData().length()>2000) {
xxlJobLog.setJobData(xxlJobLog.getJobData().substring(0, 2000));
}
return sqlSessionTemplate.insert("XxlJobLogMapper.save", xxlJobLog);
}
@ -30,11 +33,17 @@ public class XxlJobLogDaoImpl implements IXxlJobLogDao {
@Override
public int updateTriggerInfo(XxlJobLog xxlJobLog) {
if (xxlJobLog!=null && xxlJobLog.getTriggerMsg().length()>2000) {
xxlJobLog.setTriggerMsg(xxlJobLog.getTriggerMsg().substring(0, 2000));
}
return sqlSessionTemplate.update("XxlJobLogMapper.updateTriggerInfo", xxlJobLog);
}
@Override
public int updateHandleInfo(XxlJobLog xxlJobLog) {
if (xxlJobLog!=null && xxlJobLog.getHandleMsg().length()>2000) {
xxlJobLog.setHandleMsg(xxlJobLog.getHandleMsg().substring(0, 2000));
}
return sqlSessionTemplate.update("XxlJobLogMapper.updateHandleInfo", xxlJobLog);
}

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

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

@ -43,9 +43,11 @@ public class HttpUtil {
String exceptionMsg = null;
// do post
HttpPost httpPost = new HttpPost(reqURL);
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = null;
CloseableHttpClient httpClient = null;
try{
httpPost = new HttpPost(reqURL);
httpClient = HttpClients.createDefault();
if (params != null && !params.isEmpty()) {
List<NameValuePair> formParams = new ArrayList<NameValuePair>();
for(Map.Entry<String,String> entry : params.entrySet()){
@ -68,11 +70,15 @@ public class HttpUtil {
e.printStackTrace(new PrintWriter(out));
exceptionMsg = out.toString();
} finally{
httpPost.releaseConnection();
try {
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
if (httpPost!=null) {
httpPost.releaseConnection();
}
if (httpClient!=null) {
try {
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

Loading…
Cancel
Save