Skip to content

Commit 0a5eab2

Browse files
committed
Merge pull request #10 from qq254963746/develop
添加 mysql JobLogger 实现
2 parents bff5325 + 94b4881 commit 0a5eab2

File tree

17 files changed

+243
-29
lines changed

17 files changed

+243
-29
lines changed

job-core/src/main/java/com/lts/job/core/file/FileUtils.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.lts.job.core.file;
22

3-
import java.io.File;
4-
import java.io.IOException;
3+
import java.io.*;
54

65
/**
76
* @author Robert HG ([email protected]) on 3/6/15.
@@ -32,5 +31,13 @@ public static File createDirIfNotExist(String path) {
3231
return file;
3332
}
3433

35-
34+
public static String read(InputStream is) throws IOException {
35+
BufferedReader br = new BufferedReader(new InputStreamReader(is));
36+
StringBuilder createTableSql = new StringBuilder();
37+
String data = null;
38+
while ((data = br.readLine()) != null) {
39+
createTableSql.append(data);
40+
}
41+
return createTableSql.toString();
42+
}
3643
}

job-core/src/main/java/com/lts/job/core/util/JSONUtils.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
public class JSONUtils {
1414

1515
public static <T> T parse(String json, Type type) {
16+
if (StringUtils.isEmpty(json)) {
17+
return null;
18+
}
1619
return (T) JSONObject.parseObject(json, type);
1720
}
1821

@@ -24,18 +27,30 @@ public static <T> T parse(String json, TypeReference<T> type) {
2427
}
2528

2629
public static String toJSONString(Object obj) {
30+
if (obj == null) {
31+
return null;
32+
}
2733
return JSONObject.toJSONString(obj);
2834
}
2935

3036
public static JSONObject toJSON(Object obj) {
37+
if (obj == null) {
38+
return null;
39+
}
3140
return (JSONObject) JSONObject.toJSON(obj);
3241
}
3342

3443
public static JSONArray parseArray(String obj) {
44+
if (obj == null) {
45+
return null;
46+
}
3547
return JSON.parseArray(obj);
3648
}
3749

3850
public static JSONObject parseObject(String obj) {
51+
if (obj == null) {
52+
return null;
53+
}
3954
return JSON.parseObject(obj);
4055
}
4156

job-example/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@
3737
<artifactId>job-logger-console</artifactId>
3838
<version>${project.version}</version>
3939
</dependency>
40+
<dependency>
41+
<groupId>com.lts</groupId>
42+
<artifactId>job-logger-mysql</artifactId>
43+
<version>${project.version}</version>
44+
</dependency>
4045
<dependency>
4146
<groupId>com.lts</groupId>
4247
<artifactId>job-queue-mongo</artifactId>

job-example/src/main/java/com/lts/job/example/api/JobClientTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public static void console() throws IOException {
3434
// jobClient.setJobInfoSavePath(Constants.USER_HOME);
3535
jobClient.setJobFinishedHandler(new JobFinishedHandlerImpl());
3636
jobClient.addMasterChangeListener(new MasterChangeListenerImpl());
37-
jobClient.setLoadBalance("consistenthash");
37+
// jobClient.setLoadBalance("consistenthash");
3838
jobClient.start();
3939

4040
JobClientTest jobClientTest = new JobClientTest();

job-example/src/main/java/com/lts/job/example/api/JobTrackerTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public void run() {
5353
}
5454

5555
/**
56-
* 使用mongo做任务队列
56+
* 使用mysql做任务队列
5757
*/
5858
public static void testMysqlQueue() {
5959
final JobTracker jobTracker = new JobTracker();
@@ -65,8 +65,8 @@ public static void testMysqlQueue() {
6565

6666
jobTracker.addMasterChangeListener(new MasterChangeListenerImpl());
6767

68-
// 设置业务日志记录
69-
// jobTracker.addConfig("job.logger", "mongo");
68+
// 设置业务日志记录 mysql
69+
jobTracker.addConfig("job.logger", "mysql");
7070
// 任务队列用mysql
7171
jobTracker.addConfig("job.queue", "mysql");
7272
// mysql 配置
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.lts.job.biz.logger;
2+
3+
/**
4+
* @author Robert HG ([email protected]) on 5/21/15.
5+
*/
6+
public class JobLogException extends RuntimeException {
7+
8+
public JobLogException() {
9+
super();
10+
}
11+
12+
public JobLogException(String message) {
13+
super(message);
14+
}
15+
16+
public JobLogException(String message, Throwable cause) {
17+
super(message, cause);
18+
}
19+
20+
public JobLogException(Throwable cause) {
21+
super(cause);
22+
}
23+
24+
protected JobLogException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
25+
super(message, cause, enableSuppression, writableStackTrace);
26+
}
27+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.lts.job.biz.logger;
2+
3+
import com.lts.job.biz.logger.domain.BizLogPo;
4+
import com.lts.job.biz.logger.domain.JobLogPo;
5+
import com.lts.job.biz.logger.domain.LogType;
6+
7+
/**
8+
* @author Robert HG ([email protected]) on 5/21/15.
9+
*/
10+
public class JobLogUtils {
11+
12+
public static JobLogPo bizConvert(BizLogPo bizLogPo) {
13+
if (bizLogPo == null) {
14+
return null;
15+
}
16+
JobLogPo jobLogPo = new JobLogPo();
17+
jobLogPo.setTimestamp(bizLogPo.getTimestamp());
18+
jobLogPo.setTaskTrackerNodeGroup(bizLogPo.getTaskTrackerNodeGroup());
19+
jobLogPo.setTaskTrackerIdentity(bizLogPo.getTaskTrackerIdentity());
20+
jobLogPo.setJobId(bizLogPo.getJobId());
21+
jobLogPo.setMsg(bizLogPo.getMsg());
22+
jobLogPo.setLevel(bizLogPo.getLevel());
23+
jobLogPo.setLogType(LogType.BIZ);
24+
return jobLogPo;
25+
}
26+
27+
}

job-logger/job-logger-api/src/main/java/com/lts/job/biz/logger/domain/LogType.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ public enum LogType {
77

88
FINISHED, // 任务执行完成
99
RESEND, // TaskTracker 重新发送的任务执行结果
10-
FIXED_DEAD // 修复死掉的任务
10+
FIXED_DEAD, // 修复死掉的任务
11+
BIZ // 业务日志
1112
;
1213
}

job-logger/job-logger-mongo/src/main/java/com/lts/job/biz/logger/mongo/MongoJobLogger.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package com.lts.job.biz.logger.mongo;
22

33

4+
import com.lts.job.biz.logger.JobLogUtils;
45
import com.lts.job.biz.logger.JobLogger;
56
import com.lts.job.biz.logger.domain.BizLogPo;
67
import com.lts.job.biz.logger.domain.JobLogPo;
8+
import com.lts.job.biz.logger.domain.LogType;
79
import com.lts.job.core.cluster.Config;
810
import com.lts.job.store.mongo.AbstractMongoRepository;
911

@@ -23,13 +25,7 @@ public void log(JobLogPo jobLogPo) {
2325

2426
@Override
2527
public void log(BizLogPo bizLogPo) {
26-
JobLogPo jobLogPo = new JobLogPo();
27-
jobLogPo.setTimestamp(bizLogPo.getTimestamp());
28-
jobLogPo.setTaskTrackerNodeGroup(bizLogPo.getTaskTrackerNodeGroup());
29-
jobLogPo.setTaskTrackerIdentity(bizLogPo.getTaskTrackerIdentity());
30-
jobLogPo.setJobId(bizLogPo.getJobId());
31-
jobLogPo.setMsg(bizLogPo.getMsg());
32-
ds.save(jobLogPo);
28+
ds.save(JobLogUtils.bizConvert(bizLogPo));
3329
}
3430

3531
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<parent>
6+
<artifactId>job-logger</artifactId>
7+
<groupId>com.lts</groupId>
8+
<version>1.4.0-SNAPSHOT</version>
9+
</parent>
10+
<modelVersion>4.0.0</modelVersion>
11+
12+
<artifactId>job-logger-mysql</artifactId>
13+
14+
<dependencies>
15+
<dependency>
16+
<groupId>com.lts</groupId>
17+
<artifactId>job-logger-api</artifactId>
18+
<version>${project.version}</version>
19+
</dependency>
20+
<dependency>
21+
<groupId>commons-dbutils</groupId>
22+
<artifactId>commons-dbutils</artifactId>
23+
</dependency>
24+
<dependency>
25+
<groupId>mysql</groupId>
26+
<artifactId>mysql-connector-java</artifactId>
27+
</dependency>
28+
</dependencies>
29+
30+
</project>

0 commit comments

Comments
 (0)