Преглед изворни кода

Merge pull request #982 from strongant/master

许雪里 пре 6 година
родитељ
комит
96fe2e9623
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
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
30
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
31
 
31
 
32
 CREATE TABLE `xxl_job_log` (
32
 CREATE TABLE `xxl_job_log` (
33
-  `id` int(11) NOT NULL AUTO_INCREMENT,
33
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
34
   `job_group` int(11) NOT NULL COMMENT '执行器主键ID',
34
   `job_group` int(11) NOT NULL COMMENT '执行器主键ID',
35
   `job_id` int(11) NOT NULL COMMENT '任务,主键ID',
35
   `job_id` int(11) NOT NULL COMMENT '任务,主键ID',
36
   `executor_address` varchar(255) DEFAULT NULL COMMENT '执行器地址,本次执行的地址',
36
   `executor_address` varchar(255) DEFAULT NULL COMMENT '执行器地址,本次执行的地址',

+ 3 - 3
xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java Прегледај датотеку

8
  */
8
  */
9
 public class XxlJobLog {
9
 public class XxlJobLog {
10
 	
10
 	
11
-	private int id;
11
+	private long id;
12
 	
12
 	
13
 	// job info
13
 	// job info
14
 	private int jobGroup;
14
 	private int jobGroup;
34
 	// alarm info
34
 	// alarm info
35
 	private int alarmStatus;
35
 	private int alarmStatus;
36
 
36
 
37
-	public int getId() {
37
+	public long getId() {
38
 		return id;
38
 		return id;
39
 	}
39
 	}
40
 
40
 
41
-	public void setId(int id) {
41
+	public void setId(long id) {
42
 		this.id = id;
42
 		this.id = id;
43
 	}
43
 	}
44
 
44
 

+ 2 - 2
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java Прегледај датотеку

46
 				while (!toStop) {
46
 				while (!toStop) {
47
 					try {
47
 					try {
48
 
48
 
49
-						List<Integer> failLogIds = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().findFailJobLogIds(1000);
49
+						List<Long> failLogIds = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().findFailJobLogIds(1000);
50
 						if (failLogIds!=null && !failLogIds.isEmpty()) {
50
 						if (failLogIds!=null && !failLogIds.isEmpty()) {
51
-							for (int failLogId: failLogIds) {
51
+							for (long failLogId: failLogIds) {
52
 
52
 
53
 								// lock log
53
 								// lock log
54
 								int lockRet = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().updateAlarmStatus(failLogId, 0, -1);
54
 								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
 	
35
 	
36
 	public int update(XxlJobInfo xxlJobInfo);
36
 	public int update(XxlJobInfo xxlJobInfo);
37
 	
37
 	
38
-	public int delete(@Param("id") int id);
38
+	public int delete(@Param("id") long id);
39
 
39
 
40
 	public List<XxlJobInfo> getJobsByGroup(@Param("jobGroup") int jobGroup);
40
 	public List<XxlJobInfo> getJobsByGroup(@Param("jobGroup") int jobGroup);
41
 
41
 

+ 4 - 4
xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogDao.java Прегледај датотеку

31
 							 @Param("triggerTimeEnd") Date triggerTimeEnd,
31
 							 @Param("triggerTimeEnd") Date triggerTimeEnd,
32
 							 @Param("logStatus") int logStatus);
32
 							 @Param("logStatus") int logStatus);
33
 	
33
 	
34
-	public XxlJobLog load(@Param("id") int id);
34
+	public XxlJobLog load(@Param("id") long id);
35
 
35
 
36
-	public int save(XxlJobLog xxlJobLog);
36
+	public long save(XxlJobLog xxlJobLog);
37
 
37
 
38
 	public int updateTriggerInfo(XxlJobLog xxlJobLog);
38
 	public int updateTriggerInfo(XxlJobLog xxlJobLog);
39
 
39
 
51
 						@Param("clearBeforeTime") Date clearBeforeTime,
51
 						@Param("clearBeforeTime") Date clearBeforeTime,
52
 						@Param("clearBeforeNum") int clearBeforeNum);
52
 						@Param("clearBeforeNum") int clearBeforeNum);
53
 
53
 
54
-	public List<Integer> findFailJobLogIds(@Param("pagesize") int pagesize);
54
+	public List<Long> findFailJobLogIds(@Param("pagesize") int pagesize);
55
 
55
 
56
-	public int updateAlarmStatus(@Param("logId") int logId,
56
+	public int updateAlarmStatus(@Param("logId") long logId,
57
 								 @Param("oldAlarmStatus") int oldAlarmStatus,
57
 								 @Param("oldAlarmStatus") int oldAlarmStatus,
58
 								 @Param("newAlarmStatus") int newAlarmStatus);
58
 								 @Param("newAlarmStatus") int newAlarmStatus);
59
 
59
 

+ 2 - 2
xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml Прегледај датотеку

110
 		</trim>
110
 		</trim>
111
 	</select>
111
 	</select>
112
 	
112
 	
113
-	<select id="load" parameterType="java.lang.Integer" resultMap="XxlJobLog">
113
+	<select id="load" parameterType="java.lang.Long" resultMap="XxlJobLog">
114
 		SELECT <include refid="Base_Column_List" />
114
 		SELECT <include refid="Base_Column_List" />
115
 		FROM xxl_job_log AS t
115
 		FROM xxl_job_log AS t
116
 		WHERE t.id = #{id}
116
 		WHERE t.id = #{id}
218
 		</trim>
218
 		</trim>
219
 	</delete>
219
 	</delete>
220
 
220
 
221
-	<select id="findFailJobLogIds" resultType="int" >
221
+	<select id="findFailJobLogIds" resultType="long" >
222
 		SELECT id FROM `xxl_job_log`
222
 		SELECT id FROM `xxl_job_log`
223
 		WHERE !(
223
 		WHERE !(
224
 			(trigger_code in (0, 200) and handle_code = 0)
224
 			(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
 import org.junit.Before;
3
 import org.junit.Before;
4
 import org.junit.runner.RunWith;
4
 import org.junit.runner.RunWith;
5
 import org.springframework.beans.factory.annotation.Autowired;
5
 import org.springframework.beans.factory.annotation.Autowired;
6
+import org.springframework.boot.test.context.SpringBootTest;
6
 import org.springframework.test.context.ContextConfiguration;
7
 import org.springframework.test.context.ContextConfiguration;
7
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
8
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
9
+import org.springframework.test.context.junit4.SpringRunner;
8
 import org.springframework.test.context.web.WebAppConfiguration;
10
 import org.springframework.test.context.web.WebAppConfiguration;
9
 import org.springframework.test.web.servlet.MockMvc;
11
 import org.springframework.test.web.servlet.MockMvc;
10
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
12
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
11
 import org.springframework.web.context.WebApplicationContext;
13
 import org.springframework.web.context.WebApplicationContext;
12
 
14
 
13
-@WebAppConfiguration
14
-@RunWith(SpringJUnit4ClassRunner.class)
15
-@ContextConfiguration(locations = {"classpath*:spring/*.xml"})
15
+@RunWith(SpringRunner.class)
16
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
16
 public class AbstractSpringMvcTest {
17
 public class AbstractSpringMvcTest {
17
 
18
 
18
   @Autowired
19
   @Autowired

+ 4 - 2
xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobGroupDaoTest.java Прегледај датотеку

4
 import com.xxl.job.admin.dao.XxlJobGroupDao;
4
 import com.xxl.job.admin.dao.XxlJobGroupDao;
5
 import org.junit.Test;
5
 import org.junit.Test;
6
 import org.junit.runner.RunWith;
6
 import org.junit.runner.RunWith;
7
+import org.springframework.boot.test.context.SpringBootTest;
7
 import org.springframework.test.context.ContextConfiguration;
8
 import org.springframework.test.context.ContextConfiguration;
8
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
9
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
10
+import org.springframework.test.context.junit4.SpringRunner;
9
 
11
 
10
 import javax.annotation.Resource;
12
 import javax.annotation.Resource;
11
 import java.util.List;
13
 import java.util.List;
12
 
14
 
13
-@RunWith(SpringJUnit4ClassRunner.class)
14
-@ContextConfiguration(locations = "classpath*:spring/applicationcontext-*.xml")
15
+@RunWith(SpringRunner.class)
16
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
15
 public class XxlJobGroupDaoTest {
17
 public class XxlJobGroupDaoTest {
16
 
18
 
17
     @Resource
19
     @Resource

+ 4 - 2
xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobInfoDaoTest.java Прегледај датотеку

3
 import com.xxl.job.admin.core.model.XxlJobInfo;
3
 import com.xxl.job.admin.core.model.XxlJobInfo;
4
 import org.junit.Test;
4
 import org.junit.Test;
5
 import org.junit.runner.RunWith;
5
 import org.junit.runner.RunWith;
6
+import org.springframework.boot.test.context.SpringBootTest;
6
 import org.springframework.test.context.ContextConfiguration;
7
 import org.springframework.test.context.ContextConfiguration;
7
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
8
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
9
+import org.springframework.test.context.junit4.SpringRunner;
8
 
10
 
9
 import javax.annotation.Resource;
11
 import javax.annotation.Resource;
10
 import java.util.Date;
12
 import java.util.Date;
11
 import java.util.List;
13
 import java.util.List;
12
 
14
 
13
-@RunWith(SpringJUnit4ClassRunner.class)
14
-@ContextConfiguration(locations = "classpath*:spring/applicationcontext-*.xml")
15
+@RunWith(SpringRunner.class)
16
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
15
 public class XxlJobInfoDaoTest {
17
 public class XxlJobInfoDaoTest {
16
 	
18
 	
17
 	@Resource
19
 	@Resource

+ 5 - 3
xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobLogDaoTest.java Прегледај датотеку

3
 import com.xxl.job.admin.core.model.XxlJobLog;
3
 import com.xxl.job.admin.core.model.XxlJobLog;
4
 import org.junit.Test;
4
 import org.junit.Test;
5
 import org.junit.runner.RunWith;
5
 import org.junit.runner.RunWith;
6
+import org.springframework.boot.test.context.SpringBootTest;
6
 import org.springframework.test.context.ContextConfiguration;
7
 import org.springframework.test.context.ContextConfiguration;
7
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
8
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
9
+import org.springframework.test.context.junit4.SpringRunner;
8
 
10
 
9
 import javax.annotation.Resource;
11
 import javax.annotation.Resource;
10
 import java.util.Date;
12
 import java.util.Date;
11
 import java.util.List;
13
 import java.util.List;
12
 import java.util.Map;
14
 import java.util.Map;
13
 
15
 
14
-@RunWith(SpringJUnit4ClassRunner.class)
15
-@ContextConfiguration(locations = "classpath*:spring/applicationcontext-*.xml")
16
+@RunWith(SpringRunner.class)
17
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
16
 public class XxlJobLogDaoTest {
18
 public class XxlJobLogDaoTest {
17
 
19
 
18
     @Resource
20
     @Resource
27
         log.setJobGroup(1);
29
         log.setJobGroup(1);
28
         log.setJobId(1);
30
         log.setJobId(1);
29
 
31
 
30
-        int ret1 = xxlJobLogDao.save(log);
32
+        long ret1 = xxlJobLogDao.save(log);
31
         XxlJobLog dto = xxlJobLogDao.load(log.getId());
33
         XxlJobLog dto = xxlJobLogDao.load(log.getId());
32
 
34
 
33
         log.setTriggerTime(new Date());
35
         log.setTriggerTime(new Date());

+ 4 - 2
xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobLogGlueDaoTest.java Прегледај датотеку

4
 import com.xxl.job.admin.dao.XxlJobLogGlueDao;
4
 import com.xxl.job.admin.dao.XxlJobLogGlueDao;
5
 import org.junit.Test;
5
 import org.junit.Test;
6
 import org.junit.runner.RunWith;
6
 import org.junit.runner.RunWith;
7
+import org.springframework.boot.test.context.SpringBootTest;
7
 import org.springframework.test.context.ContextConfiguration;
8
 import org.springframework.test.context.ContextConfiguration;
8
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
9
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
10
+import org.springframework.test.context.junit4.SpringRunner;
9
 
11
 
10
 import javax.annotation.Resource;
12
 import javax.annotation.Resource;
11
 import java.util.List;
13
 import java.util.List;
12
 
14
 
13
-@RunWith(SpringJUnit4ClassRunner.class)
14
-@ContextConfiguration(locations = "classpath*:spring/applicationcontext-*.xml")
15
+@RunWith(SpringRunner.class)
16
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
15
 public class XxlJobLogGlueDaoTest {
17
 public class XxlJobLogGlueDaoTest {
16
 
18
 
17
     @Resource
19
     @Resource

+ 1 - 1
xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobRegistryDaoTest.java Прегледај датотеку

10
 import java.util.List;
10
 import java.util.List;
11
 
11
 
12
 @RunWith(SpringRunner.class)
12
 @RunWith(SpringRunner.class)
13
-@SpringBootTest
13
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
14
 public class XxlJobRegistryDaoTest {
14
 public class XxlJobRegistryDaoTest {
15
 
15
 
16
     @Resource
16
     @Resource

+ 4 - 2
xxl-job-admin/src/test/java/com/xxl/job/admin/util/I18nUtilTest.java Прегледај датотеку

3
 import com.xxl.job.admin.core.util.I18nUtil;
3
 import com.xxl.job.admin.core.util.I18nUtil;
4
 import org.junit.Test;
4
 import org.junit.Test;
5
 import org.junit.runner.RunWith;
5
 import org.junit.runner.RunWith;
6
+import org.springframework.boot.test.context.SpringBootTest;
6
 import org.springframework.test.context.ContextConfiguration;
7
 import org.springframework.test.context.ContextConfiguration;
7
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
8
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
9
+import org.springframework.test.context.junit4.SpringRunner;
8
 
10
 
9
 /**
11
 /**
10
  * email util test
12
  * email util test
11
  *
13
  *
12
  * @author xuxueli 2017-12-22 17:16:23
14
  * @author xuxueli 2017-12-22 17:16:23
13
  */
15
  */
14
-@RunWith(SpringJUnit4ClassRunner.class)
15
-@ContextConfiguration(locations = "classpath*:spring/applicationcontext-*.xml")
16
+@RunWith(SpringRunner.class)
17
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
16
 public class I18nUtilTest {
18
 public class I18nUtilTest {
17
 
19
 
18
     @Test
20
     @Test

+ 1 - 1
xxl-job-core/src/main/java/com/xxl/job/core/biz/ExecutorBiz.java Прегледај датотеку

37
      * @param fromLineNum
37
      * @param fromLineNum
38
      * @return
38
      * @return
39
      */
39
      */
40
-    public ReturnT<LogResult> log(long logDateTim, int logId, int fromLineNum);
40
+    public ReturnT<LogResult> log(long logDateTim, long logId, int fromLineNum);
41
 
41
 
42
     /**
42
     /**
43
      * run
43
      * run

+ 1 - 1
xxl-job-core/src/main/java/com/xxl/job/core/biz/impl/ExecutorBizImpl.java Прегледај датотеку

58
     }
58
     }
59
 
59
 
60
     @Override
60
     @Override
61
-    public ReturnT<LogResult> log(long logDateTim, int logId, int fromLineNum) {
61
+    public ReturnT<LogResult> log(long logDateTim, long logId, int fromLineNum) {
62
         // log filename: logPath/yyyy-MM-dd/9999.log
62
         // log filename: logPath/yyyy-MM-dd/9999.log
63
         String logFileName = XxlJobFileAppender.makeLogFileName(new Date(logDateTim), logId);
63
         String logFileName = XxlJobFileAppender.makeLogFileName(new Date(logDateTim), logId);
64
 
64
 

+ 3 - 3
xxl-job-core/src/main/java/com/xxl/job/core/biz/model/HandleCallbackParam.java Прегледај датотеку

8
 public class HandleCallbackParam implements Serializable {
8
 public class HandleCallbackParam implements Serializable {
9
     private static final long serialVersionUID = 42L;
9
     private static final long serialVersionUID = 42L;
10
 
10
 
11
-    private int logId;
11
+    private long logId;
12
     private long logDateTim;
12
     private long logDateTim;
13
 
13
 
14
     private ReturnT<String> executeResult;
14
     private ReturnT<String> executeResult;
15
 
15
 
16
     public HandleCallbackParam(){}
16
     public HandleCallbackParam(){}
17
-    public HandleCallbackParam(int logId, long logDateTim, ReturnT<String> executeResult) {
17
+    public HandleCallbackParam(long logId, long logDateTim, ReturnT<String> executeResult) {
18
         this.logId = logId;
18
         this.logId = logId;
19
         this.logDateTim = logDateTim;
19
         this.logDateTim = logDateTim;
20
         this.executeResult = executeResult;
20
         this.executeResult = executeResult;
21
     }
21
     }
22
 
22
 
23
-    public int getLogId() {
23
+    public long getLogId() {
24
         return logId;
24
         return logId;
25
     }
25
     }
26
 
26
 

+ 3 - 3
xxl-job-core/src/main/java/com/xxl/job/core/biz/model/TriggerParam.java Прегледај датотеку

15
     private String executorBlockStrategy;
15
     private String executorBlockStrategy;
16
     private int executorTimeout;
16
     private int executorTimeout;
17
 
17
 
18
-    private int logId;
18
+    private long logId;
19
     private long logDateTim;
19
     private long logDateTim;
20
 
20
 
21
     private String glueType;
21
     private String glueType;
66
         this.executorTimeout = executorTimeout;
66
         this.executorTimeout = executorTimeout;
67
     }
67
     }
68
 
68
 
69
-    public int getLogId() {
69
+    public long getLogId() {
70
         return logId;
70
         return logId;
71
     }
71
     }
72
 
72
 
73
-    public void setLogId(int logId) {
73
+    public void setLogId(long logId) {
74
         this.logId = logId;
74
         this.logId = logId;
75
     }
75
     }
76
 
76
 

+ 1 - 1
xxl-job-core/src/main/java/com/xxl/job/core/log/XxlJobFileAppender.java Прегледај датотеку

68
 	 * @param logId
68
 	 * @param logId
69
 	 * @return
69
 	 * @return
70
 	 */
70
 	 */
71
-	public static String makeLogFileName(Date triggerDate, int logId) {
71
+	public static String makeLogFileName(Date triggerDate, long logId) {
72
 
72
 
73
 		// filePath/yyyy-MM-dd
73
 		// filePath/yyyy-MM-dd
74
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");	// avoid concurrent problem, can not be static
74
 		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
 	private int jobId;
30
 	private int jobId;
31
 	private IJobHandler handler;
31
 	private IJobHandler handler;
32
 	private LinkedBlockingQueue<TriggerParam> triggerQueue;
32
 	private LinkedBlockingQueue<TriggerParam> triggerQueue;
33
-	private Set<Integer> triggerLogIdSet;		// avoid repeat trigger for the same TRIGGER_LOG_ID
33
+	private Set<Long> triggerLogIdSet;		// avoid repeat trigger for the same TRIGGER_LOG_ID
34
 
34
 
35
 	private volatile boolean toStop = false;
35
 	private volatile boolean toStop = false;
36
 	private String stopReason;
36
 	private String stopReason;
43
 		this.jobId = jobId;
43
 		this.jobId = jobId;
44
 		this.handler = handler;
44
 		this.handler = handler;
45
 		this.triggerQueue = new LinkedBlockingQueue<TriggerParam>();
45
 		this.triggerQueue = new LinkedBlockingQueue<TriggerParam>();
46
-		this.triggerLogIdSet = Collections.synchronizedSet(new HashSet<Integer>());
46
+		this.triggerLogIdSet = Collections.synchronizedSet(new HashSet<Long>());
47
 	}
47
 	}
48
 	public IJobHandler getHandler() {
48
 	public IJobHandler getHandler() {
49
 		return handler;
49
 		return handler;