Skip to content

Commit d7f88a0

Browse files
committed
add #82
1 parent 3af7d1b commit d7f88a0

4 files changed

Lines changed: 23 additions & 7 deletions

File tree

flow-engine-framework/src/main/java/com/codingapi/flow/mock/MockInstance.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@
33
import com.codingapi.flow.query.FlowRecordQueryService;
44
import com.codingapi.flow.service.FlowService;
55
import lombok.Getter;
6-
import lombok.extern.slf4j.Slf4j;
76

87
import java.util.Timer;
98
import java.util.TimerTask;
109

1110

12-
@Slf4j
11+
/**
12+
* 模拟实例对象,当MockInstance被创建以后若15分钟没人操作,则将会自动注销,当有人操作会持续延长15分钟的时间。
13+
*/
1314
public class MockInstance {
1415

1516
@Getter
@@ -23,11 +24,14 @@ public class MockInstance {
2324

2425
private final Timer timer;
2526

27+
@Getter
2628
private final long createTime;
2729

30+
@Getter
2831
private long expiredTime;
2932

30-
private static final long MAX_KEEP_TIME = 1000 * 60 * 30;
33+
// 最大活跃时长,15分钟
34+
private static final long MAX_KEEP_TIME = 1000 * 60 * 15;
3135

3236
public MockInstance(String mockKey, MockRepositoryHolder repositoryHolder, FlowService flowService, FlowRecordQueryService flowRecordQueryService) {
3337
this.mockKey = mockKey;
@@ -44,12 +48,18 @@ public void updateExpiredTime(){
4448
this.expiredTime = System.currentTimeMillis() + MAX_KEEP_TIME;
4549
}
4650

51+
/**
52+
* 是否到期
53+
*/
54+
public boolean isExpired(){
55+
return System.currentTimeMillis() > expiredTime;
56+
}
57+
4758
private void initTimer() {
4859
this.timer.scheduleAtFixedRate(new TimerTask() {
4960
@Override
5061
public void run() {
51-
long currentTime = System.currentTimeMillis();
52-
if (expiredTime > currentTime) {
62+
if (isExpired()) {
5363
MockInstanceFactory.getInstance().clear(mockKey);
5464
timer.cancel();
5565
return;

flow-engine-framework/src/main/java/com/codingapi/flow/mock/MockInstanceFactory.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
package com.codingapi.flow.mock;
22

33
import com.codingapi.flow.gateway.FlowOperatorGateway;
4-
import com.codingapi.flow.mock.server.FlowRecordQueryMockService;
4+
import com.codingapi.flow.mock.service.FlowRecordQueryMockService;
55
import com.codingapi.flow.service.FlowService;
66
import com.codingapi.flow.utils.RandomUtils;
77
import lombok.Getter;
88

99
import java.util.Map;
1010
import java.util.concurrent.ConcurrentHashMap;
1111

12+
/**
13+
* 模拟示例构建工厂
14+
*/
1215
public class MockInstanceFactory {
1316

1417
private final Map<String, MockInstance> cache;

flow-engine-framework/src/main/java/com/codingapi/flow/mock/MockRepositoryHolder.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818

1919
import java.util.List;
2020

21+
/**
22+
* 模拟仓库持有者对象
23+
*/
2124
@Getter
2225
public class MockRepositoryHolder implements IRepositoryHolder {
2326

flow-engine-framework/src/main/java/com/codingapi/flow/mock/server/FlowRecordQueryMockService.java renamed to flow-engine-framework/src/main/java/com/codingapi/flow/mock/service/FlowRecordQueryMockService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.codingapi.flow.mock.server;
1+
package com.codingapi.flow.mock.service;
22

33
import com.codingapi.flow.mock.MockRepositoryHolder;
44
import com.codingapi.flow.mock.repository.FlowRecordRepositoryMockImpl;

0 commit comments

Comments
 (0)