Эх сурвалжийг харах

修复 xxl_job_log 主键id类型为 bigint(20) , 防止 int(11) 位溢出导致调度任务不能正常调度。

bwh 5 жил өмнө
parent
commit
3afd579dcf
19 өөрчлөгдсөн 50 нэмэгдсэн , 39 устгасан
  1. 1 1
      doc/db/tables_xxl_job.sql
  2. 3 3
      xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java
  3. 2 2
      xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java
  4. 1 1
      xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobInfoDao.java
  5. 4 4
      xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogDao.java
  6. 2 2
      xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml
  7. 4 3
      xxl-job-admin/src/test/java/com/xxl/job/admin/controller/AbstractSpringMvcTest.java
  8. 4 2
      xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobGroupDaoTest.java
  9. 4 2
      xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobInfoDaoTest.java
  10. 5 3
      xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobLogDaoTest.java
  11. 4 2
      xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobLogGlueDaoTest.java
  12. 1 1
      xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobRegistryDaoTest.java
  13. 4 2
      xxl-job-admin/src/test/java/com/xxl/job/admin/util/I18nUtilTest.java
  14. 1 1
      xxl-job-core/src/main/java/com/xxl/job/core/biz/ExecutorBiz.java
  15. 1 1
      xxl-job-core/src/main/java/com/xxl/job/core/biz/impl/ExecutorBizImpl.java
  16. 3 3
      xxl-job-core/src/main/java/com/xxl/job/core/biz/model/HandleCallbackParam.java
  17. 3 3
      xxl-job-core/src/main/java/com/xxl/job/core/biz/model/TriggerParam.java
  18. 1 1
      xxl-job-core/src/main/java/com/xxl/job/core/log/XxlJobFileAppender.java
  19. 2 2
      xxl-job-core/src/main/java/com/xxl/job/core/thread/JobThread.java

+ 1 - 1
doc/db/tables_xxl_job.sql

@@ -30,7 +30,7 @@ CREATE TABLE `xxl_job_info` (
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 CREATE TABLE `xxl_job_log` (
-  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
   `job_group` int(11) NOT NULL COMMENT '执行器主键ID',
   `job_id` int(11) NOT NULL COMMENT '任务,主键ID',
   `executor_address` varchar(255) DEFAULT NULL COMMENT '执行器地址,本次执行的地址',

+ 3 - 3
xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java

@@ -8,7 +8,7 @@ import java.util.Date;
  */
 public class XxlJobLog {
 	
-	private int id;
+	private long id;
 	
 	// job info
 	private int jobGroup;
@@ -34,11 +34,11 @@ public class XxlJobLog {
 	// alarm info
 	private int alarmStatus;
 
-	public int getId() {
+	public long getId() {
 		return id;
 	}
 
-	public void setId(int id) {
+	public void setId(long id) {
 		this.id = id;
 	}
 

+ 2 - 2
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java

@@ -46,9 +46,9 @@ public class JobFailMonitorHelper {
 				while (!toStop) {
 					try {
 
-						List<Integer> failLogIds = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().findFailJobLogIds(1000);
+						List<Long> failLogIds = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().findFailJobLogIds(1000);
 						if (failLogIds!=null && !failLogIds.isEmpty()) {
-							for (int failLogId: failLogIds) {
+							for (long failLogId: failLogIds) {
 
 								// lock log
 								int lockRet = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().updateAlarmStatus(failLogId, 0, -1);

+ 1 - 1
xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobInfoDao.java

@@ -35,7 +35,7 @@ public interface XxlJobInfoDao {
 	
 	public int update(XxlJobInfo xxlJobInfo);
 	
-	public int delete(@Param("id") int id);
+	public int delete(@Param("id") long id);
 
 	public List<XxlJobInfo> getJobsByGroup(@Param("jobGroup") int jobGroup);
 

+ 4 - 4
xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogDao.java

@@ -31,9 +31,9 @@ public interface XxlJobLogDao {
 							 @Param("triggerTimeEnd") Date triggerTimeEnd,
 							 @Param("logStatus") int logStatus);
 	
-	public XxlJobLog load(@Param("id") int id);
+	public XxlJobLog load(@Param("id") long id);
 
-	public int save(XxlJobLog xxlJobLog);
+	public long save(XxlJobLog xxlJobLog);
 
 	public int updateTriggerInfo(XxlJobLog xxlJobLog);
 
@@ -51,9 +51,9 @@ public interface XxlJobLogDao {
 						@Param("clearBeforeTime") Date clearBeforeTime,
 						@Param("clearBeforeNum") int clearBeforeNum);
 
-	public List<Integer> findFailJobLogIds(@Param("pagesize") int pagesize);
+	public List<Long> findFailJobLogIds(@Param("pagesize") int pagesize);
 
-	public int updateAlarmStatus(@Param("logId") int logId,
+	public int updateAlarmStatus(@Param("logId") long logId,
 								 @Param("oldAlarmStatus") int oldAlarmStatus,
 								 @Param("newAlarmStatus") int newAlarmStatus);
 

+ 2 - 2
xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml

@@ -110,7 +110,7 @@
 		</trim>
 	</select>
 	
-	<select id="load" parameterType="java.lang.Integer" resultMap="XxlJobLog">
+	<select id="load" parameterType="java.lang.Long" resultMap="XxlJobLog">
 		SELECT <include refid="Base_Column_List" />
 		FROM xxl_job_log AS t
 		WHERE t.id = #{id}
@@ -218,7 +218,7 @@
 		</trim>
 	</delete>
 
-	<select id="findFailJobLogIds" resultType="int" >
+	<select id="findFailJobLogIds" resultType="long" >
 		SELECT id FROM `xxl_job_log`
 		WHERE !(
 			(trigger_code in (0, 200) and handle_code = 0)

+ 4 - 3
xxl-job-admin/src/test/java/com/xxl/job/admin/controller/AbstractSpringMvcTest.java

@@ -3,16 +3,17 @@ package com.xxl.job.admin.controller;
 import org.junit.Before;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.junit4.SpringRunner;
 import org.springframework.test.context.web.WebAppConfiguration;
 import org.springframework.test.web.servlet.MockMvc;
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
 import org.springframework.web.context.WebApplicationContext;
 
-@WebAppConfiguration
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(locations = {"classpath*:spring/*.xml"})
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
 public class AbstractSpringMvcTest {
 
   @Autowired

+ 4 - 2
xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobGroupDaoTest.java

@@ -4,14 +4,16 @@ import com.xxl.job.admin.core.model.XxlJobGroup;
 import com.xxl.job.admin.dao.XxlJobGroupDao;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.junit4.SpringRunner;
 
 import javax.annotation.Resource;
 import java.util.List;
 
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(locations = "classpath*:spring/applicationcontext-*.xml")
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
 public class XxlJobGroupDaoTest {
 
     @Resource

+ 4 - 2
xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobInfoDaoTest.java

@@ -3,15 +3,17 @@ package com.xxl.job.admin.dao;
 import com.xxl.job.admin.core.model.XxlJobInfo;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.junit4.SpringRunner;
 
 import javax.annotation.Resource;
 import java.util.Date;
 import java.util.List;
 
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(locations = "classpath*:spring/applicationcontext-*.xml")
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
 public class XxlJobInfoDaoTest {
 	
 	@Resource

+ 5 - 3
xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobLogDaoTest.java

@@ -3,16 +3,18 @@ package com.xxl.job.admin.dao;
 import com.xxl.job.admin.core.model.XxlJobLog;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.junit4.SpringRunner;
 
 import javax.annotation.Resource;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(locations = "classpath*:spring/applicationcontext-*.xml")
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
 public class XxlJobLogDaoTest {
 
     @Resource
@@ -27,7 +29,7 @@ public class XxlJobLogDaoTest {
         log.setJobGroup(1);
         log.setJobId(1);
 
-        int ret1 = xxlJobLogDao.save(log);
+        long ret1 = xxlJobLogDao.save(log);
         XxlJobLog dto = xxlJobLogDao.load(log.getId());
 
         log.setTriggerTime(new Date());

+ 4 - 2
xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobLogGlueDaoTest.java

@@ -4,14 +4,16 @@ import com.xxl.job.admin.core.model.XxlJobLogGlue;
 import com.xxl.job.admin.dao.XxlJobLogGlueDao;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.junit4.SpringRunner;
 
 import javax.annotation.Resource;
 import java.util.List;
 
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(locations = "classpath*:spring/applicationcontext-*.xml")
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
 public class XxlJobLogGlueDaoTest {
 
     @Resource

+ 1 - 1
xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobRegistryDaoTest.java

@@ -10,7 +10,7 @@ import javax.annotation.Resource;
 import java.util.List;
 
 @RunWith(SpringRunner.class)
-@SpringBootTest
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
 public class XxlJobRegistryDaoTest {
 
     @Resource

+ 4 - 2
xxl-job-admin/src/test/java/com/xxl/job/admin/util/I18nUtilTest.java

@@ -3,16 +3,18 @@ package com.xxl.job.admin.util;
 import com.xxl.job.admin.core.util.I18nUtil;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.junit4.SpringRunner;
 
 /**
  * email util test
  *
  * @author xuxueli 2017-12-22 17:16:23
  */
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(locations = "classpath*:spring/applicationcontext-*.xml")
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
 public class I18nUtilTest {
 
     @Test

+ 1 - 1
xxl-job-core/src/main/java/com/xxl/job/core/biz/ExecutorBiz.java

@@ -37,7 +37,7 @@ public interface ExecutorBiz {
      * @param fromLineNum
      * @return
      */
-    public ReturnT<LogResult> log(long logDateTim, int logId, int fromLineNum);
+    public ReturnT<LogResult> log(long logDateTim, long logId, int fromLineNum);
 
     /**
      * run

+ 1 - 1
xxl-job-core/src/main/java/com/xxl/job/core/biz/impl/ExecutorBizImpl.java

@@ -58,7 +58,7 @@ public class ExecutorBizImpl implements ExecutorBiz {
     }
 
     @Override
-    public ReturnT<LogResult> log(long logDateTim, int logId, int fromLineNum) {
+    public ReturnT<LogResult> log(long logDateTim, long logId, int fromLineNum) {
         // log filename: logPath/yyyy-MM-dd/9999.log
         String logFileName = XxlJobFileAppender.makeLogFileName(new Date(logDateTim), logId);
 

+ 3 - 3
xxl-job-core/src/main/java/com/xxl/job/core/biz/model/HandleCallbackParam.java

@@ -8,19 +8,19 @@ import java.io.Serializable;
 public class HandleCallbackParam implements Serializable {
     private static final long serialVersionUID = 42L;
 
-    private int logId;
+    private long logId;
     private long logDateTim;
 
     private ReturnT<String> executeResult;
 
     public HandleCallbackParam(){}
-    public HandleCallbackParam(int logId, long logDateTim, ReturnT<String> executeResult) {
+    public HandleCallbackParam(long logId, long logDateTim, ReturnT<String> executeResult) {
         this.logId = logId;
         this.logDateTim = logDateTim;
         this.executeResult = executeResult;
     }
 
-    public int getLogId() {
+    public long getLogId() {
         return logId;
     }
 

+ 3 - 3
xxl-job-core/src/main/java/com/xxl/job/core/biz/model/TriggerParam.java

@@ -15,7 +15,7 @@ public class TriggerParam implements Serializable{
     private String executorBlockStrategy;
     private int executorTimeout;
 
-    private int logId;
+    private long logId;
     private long logDateTim;
 
     private String glueType;
@@ -66,11 +66,11 @@ public class TriggerParam implements Serializable{
         this.executorTimeout = executorTimeout;
     }
 
-    public int getLogId() {
+    public long getLogId() {
         return logId;
     }
 
-    public void setLogId(int logId) {
+    public void setLogId(long logId) {
         this.logId = logId;
     }
 

+ 1 - 1
xxl-job-core/src/main/java/com/xxl/job/core/log/XxlJobFileAppender.java

@@ -68,7 +68,7 @@ public class XxlJobFileAppender {
 	 * @param logId
 	 * @return
 	 */
-	public static String makeLogFileName(Date triggerDate, int logId) {
+	public static String makeLogFileName(Date triggerDate, long logId) {
 
 		// filePath/yyyy-MM-dd
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");	// avoid concurrent problem, can not be static

+ 2 - 2
xxl-job-core/src/main/java/com/xxl/job/core/thread/JobThread.java

@@ -30,7 +30,7 @@ public class JobThread extends Thread{
 	private int jobId;
 	private IJobHandler handler;
 	private LinkedBlockingQueue<TriggerParam> triggerQueue;
-	private Set<Integer> triggerLogIdSet;		// avoid repeat trigger for the same TRIGGER_LOG_ID
+	private Set<Long> triggerLogIdSet;		// avoid repeat trigger for the same TRIGGER_LOG_ID
 
 	private volatile boolean toStop = false;
 	private String stopReason;
@@ -43,7 +43,7 @@ public class JobThread extends Thread{
 		this.jobId = jobId;
 		this.handler = handler;
 		this.triggerQueue = new LinkedBlockingQueue<TriggerParam>();
-		this.triggerLogIdSet = Collections.synchronizedSet(new HashSet<Integer>());
+		this.triggerLogIdSet = Collections.synchronizedSet(new HashSet<Long>());
 	}
 	public IJobHandler getHandler() {
 		return handler;