Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 09b15df

Browse files
committed
feat: optimize online log cache time(60 -> 10)
1 parent 6bcc275 commit 09b15df

File tree

2 files changed

+25
-23
lines changed

2 files changed

+25
-23
lines changed

powerjob-server/powerjob-server-core/src/main/java/tech/powerjob/server/core/instance/InstanceLogService.java

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,5 @@
11
package tech.powerjob.server.core.instance;
22

3-
import org.springframework.core.task.AsyncTaskExecutor;
4-
import org.springframework.core.task.TaskExecutor;
5-
import tech.powerjob.common.enums.LogLevel;
6-
import tech.powerjob.common.OmsConstant;
7-
import tech.powerjob.common.enums.TimeExpressionType;
8-
import tech.powerjob.common.model.InstanceLogContent;
9-
import tech.powerjob.common.utils.CommonUtils;
10-
import tech.powerjob.common.utils.NetUtils;
11-
import tech.powerjob.common.utils.SegmentLock;
12-
import tech.powerjob.server.common.constants.PJThreadPool;
13-
import tech.powerjob.server.extension.dfs.*;
14-
import tech.powerjob.server.persistence.storage.Constants;
15-
import tech.powerjob.server.remote.server.redirector.DesignateServer;
16-
import tech.powerjob.server.common.utils.OmsFileUtils;
17-
import tech.powerjob.server.persistence.StringPage;
18-
import tech.powerjob.server.persistence.remote.model.JobInfoDO;
19-
import tech.powerjob.server.persistence.local.LocalInstanceLogDO;
20-
import tech.powerjob.server.persistence.local.LocalInstanceLogRepository;
213
import com.google.common.base.Stopwatch;
224
import com.google.common.collect.Lists;
235
import com.google.common.collect.Maps;
@@ -27,18 +9,37 @@
279
import org.apache.commons.lang3.time.FastDateFormat;
2810
import org.springframework.beans.BeanUtils;
2911
import org.springframework.beans.factory.annotation.Value;
12+
import org.springframework.core.task.AsyncTaskExecutor;
3013
import org.springframework.scheduling.annotation.Async;
3114
import org.springframework.scheduling.annotation.Scheduled;
3215
import org.springframework.stereotype.Service;
3316
import org.springframework.transaction.support.TransactionTemplate;
3417
import org.springframework.util.CollectionUtils;
18+
import tech.powerjob.common.OmsConstant;
19+
import tech.powerjob.common.enums.LogLevel;
20+
import tech.powerjob.common.enums.TimeExpressionType;
21+
import tech.powerjob.common.model.InstanceLogContent;
22+
import tech.powerjob.common.utils.CommonUtils;
23+
import tech.powerjob.common.utils.NetUtils;
24+
import tech.powerjob.common.utils.SegmentLock;
25+
import tech.powerjob.server.common.constants.PJThreadPool;
26+
import tech.powerjob.server.common.utils.OmsFileUtils;
27+
import tech.powerjob.server.extension.dfs.*;
28+
import tech.powerjob.server.persistence.StringPage;
29+
import tech.powerjob.server.persistence.local.LocalInstanceLogDO;
30+
import tech.powerjob.server.persistence.local.LocalInstanceLogRepository;
31+
import tech.powerjob.server.persistence.remote.model.JobInfoDO;
32+
import tech.powerjob.server.persistence.storage.Constants;
33+
import tech.powerjob.server.remote.server.redirector.DesignateServer;
3534

3635
import javax.annotation.Resource;
3736
import java.io.*;
3837
import java.util.List;
3938
import java.util.Map;
4039
import java.util.Optional;
41-
import java.util.concurrent.*;
40+
import java.util.concurrent.Future;
41+
import java.util.concurrent.TimeUnit;
42+
import java.util.concurrent.TimeoutException;
4243
import java.util.stream.Collectors;
4344
import java.util.stream.Stream;
4445

@@ -91,9 +92,9 @@ public class InstanceLogService {
9192
*/
9293
private static final int MAX_LINE_COUNT = 100;
9394
/**
94-
* 过期时间
95+
* 更新中的日志缓存时间
9596
*/
96-
private static final long EXPIRE_INTERVAL_MS = 60000;
97+
private static final long LOG_CACHE_TIME = 10000;
9798

9899
/**
99100
* 提交日志记录,持久化到本地数据库中
@@ -248,7 +249,7 @@ private File genTemporaryLogFile(long instanceId) {
248249
return localTransactionTemplate.execute(status -> {
249250
File f = new File(path);
250251
// 如果文件存在且有效,则不再重新构建日志文件(这个判断也需要放在锁内,否则构建到一半的文件会被返回)
251-
if (f.exists() && (System.currentTimeMillis() - f.lastModified()) < EXPIRE_INTERVAL_MS) {
252+
if (f.exists() && (System.currentTimeMillis() - f.lastModified()) < LOG_CACHE_TIME) {
252253
return f;
253254
}
254255
try {

powerjob-worker-samples/src/main/java/tech/powerjob/samples/processors/MapReduceProcessorDemo.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.springframework.stereotype.Component;
1818

1919
import java.util.List;
20+
import java.util.Optional;
2021
import java.util.concurrent.ThreadLocalRandom;
2122

2223
/**
@@ -40,7 +41,7 @@ public ProcessResult process(TaskContext context) throws Exception {
4041
log.info("taskContext:{}", JsonUtils.toJSONString(context));
4142

4243
// 根据控制台参数获取MR批次及子任务大小
43-
final JSONObject jobParams = JSONObject.parseObject(context.getJobParams());
44+
final JSONObject jobParams = Optional.ofNullable(context.getJobParams()).map(JSONObject::parseObject).orElse(new JSONObject());
4445

4546
Integer batchSize = (Integer) jobParams.getOrDefault("batchSize", 100);
4647
Integer batchNum = (Integer) jobParams.getOrDefault("batchNum", 10);

0 commit comments

Comments
 (0)