Skip to content

Commit 2ff5dbf

Browse files
author
胡贵
committed
sth
1 parent 0c5182d commit 2ff5dbf

File tree

5 files changed

+40
-47
lines changed

5 files changed

+40
-47
lines changed

lts-core/src/main/java/com/lts/core/commons/utils/JSONUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public static <T> T parse(String json, Type type) {
1616
if (StringUtils.isEmpty(json)) {
1717
return null;
1818
}
19-
return (T) JSONObject.parseObject(json, type);
19+
return JSONObject.parseObject(json, type);
2020
}
2121

2222
public static <T> T parse(String json, TypeReference<T> type) {

lts-core/src/main/java/com/lts/core/extension/ExtensionLoader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import java.util.regex.Pattern;
1919

2020
/**
21-
* Dubbo使用的扩展点获取。<p>
21+
* LTS使用的扩展点获取。<p>
2222
* <ul>
2323
* <li>自动注入关联扩展点。</li>
2424
* <li>自动Wrap上扩展点的Wrap类。</li>

lts-jobtracker/src/main/java/com/lts/jobtracker/support/checker/ExecutableDeadJobChecker.java

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.util.concurrent.ScheduledExecutorService;
1515
import java.util.concurrent.ScheduledFuture;
1616
import java.util.concurrent.TimeUnit;
17+
import java.util.concurrent.atomic.AtomicBoolean;
1718

1819
/**
1920
* to fix the executable dead job
@@ -35,26 +36,23 @@ public ExecutableDeadJobChecker(JobTrackerApplication application) {
3536
this.application = application;
3637
}
3738

38-
private volatile boolean start;
39+
private AtomicBoolean start = new AtomicBoolean(false);
3940
private ScheduledFuture<?> scheduledFuture;
4041

4142
public void start() {
4243
try {
43-
if (start) {
44-
return;
45-
}
46-
scheduledFuture = FIXED_EXECUTOR_SERVICE.scheduleWithFixedDelay(new Runnable() {
47-
@Override
48-
public void run() {
49-
try {
50-
fix();
51-
} catch (Throwable t) {
52-
LOGGER.error(t.getMessage(), t);
44+
if (start.compareAndSet(false, true)) {
45+
scheduledFuture = FIXED_EXECUTOR_SERVICE.scheduleWithFixedDelay(new Runnable() {
46+
@Override
47+
public void run() {
48+
try {
49+
fix();
50+
} catch (Throwable t) {
51+
LOGGER.error(t.getMessage(), t);
52+
}
5353
}
54-
}
55-
}, 30, 60, TimeUnit.SECONDS);// 3分钟执行一次
56-
start = true;
57-
54+
}, 30, 60, TimeUnit.SECONDS);// 3分钟执行一次
55+
}
5856
LOGGER.info("Executable dead job checker started!");
5957
} catch (Throwable t) {
6058
LOGGER.info("Executable dead job checker start failed!");
@@ -82,8 +80,7 @@ private void fix() {
8280

8381
public void stop() {
8482
try {
85-
if (start) {
86-
start = false;
83+
if (start.compareAndSet(true, false)) {
8784
scheduledFuture.cancel(true);
8885
FIXED_EXECUTOR_SERVICE.shutdown();
8986
}

lts-jobtracker/src/main/java/com/lts/jobtracker/support/checker/ExecutingDeadJobChecker.java

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import java.util.concurrent.ScheduledExecutorService;
3232
import java.util.concurrent.ScheduledFuture;
3333
import java.util.concurrent.TimeUnit;
34+
import java.util.concurrent.atomic.AtomicBoolean;
3435

3536
/**
3637
* @author Robert HG ([email protected]) on 8/19/14.
@@ -55,27 +56,23 @@ public ExecutingDeadJobChecker(JobTrackerApplication application) {
5556
this.application = application;
5657
}
5758

58-
private volatile boolean start;
59+
private AtomicBoolean start = new AtomicBoolean(false);
5960
private ScheduledFuture<?> scheduledFuture;
6061

6162
public void start() {
6263
try {
63-
if (start) {
64-
return;
65-
}
66-
start = true;
67-
68-
scheduledFuture = FIXED_EXECUTOR_SERVICE.scheduleWithFixedDelay(new Runnable() {
69-
@Override
70-
public void run() {
71-
try {
72-
fix();
73-
} catch (Throwable t) {
74-
LOGGER.error(t.getMessage(), t);
64+
if (start.compareAndSet(false, true)) {
65+
scheduledFuture = FIXED_EXECUTOR_SERVICE.scheduleWithFixedDelay(new Runnable() {
66+
@Override
67+
public void run() {
68+
try {
69+
fix();
70+
} catch (Throwable t) {
71+
LOGGER.error(t.getMessage(), t);
72+
}
7573
}
76-
}
77-
}, 30, 60, TimeUnit.SECONDS);// 1分钟执行一次
78-
74+
}, 30, 60, TimeUnit.SECONDS);// 1分钟执行一次
75+
}
7976
LOGGER.info("Executing dead job checker started!");
8077
} catch (Throwable e) {
8178
LOGGER.error("Executing dead job checker start failed!", e);
@@ -205,8 +202,7 @@ private void fixedDeadJob(JobPo jobPo) {
205202

206203
public void stop() {
207204
try {
208-
if (start) {
209-
start = false;
205+
if (start.compareAndSet(true, false)) {
210206
scheduledFuture.cancel(true);
211207
FIXED_EXECUTOR_SERVICE.shutdown();
212208
}

lts-jobtracker/src/main/java/com/lts/jobtracker/support/checker/FeedbackJobSendChecker.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515
import java.util.Set;
1616
import java.util.concurrent.Executors;
1717
import java.util.concurrent.ScheduledExecutorService;
18+
import java.util.concurrent.ScheduledFuture;
1819
import java.util.concurrent.TimeUnit;
20+
import java.util.concurrent.atomic.AtomicBoolean;
1921

2022
/**
2123
* @author Robert HG ([email protected]) on 8/25/14.
@@ -26,8 +28,9 @@ public class FeedbackJobSendChecker {
2628

2729
private static final Logger LOGGER = LoggerFactory.getLogger(FeedbackJobSendChecker.class);
2830

29-
private ScheduledExecutorService RETRY_EXECUTOR_SERVICE;
30-
private volatile boolean start = false;
31+
private ScheduledExecutorService RETRY_EXECUTOR_SERVICE = Executors.newSingleThreadScheduledExecutor();
32+
private ScheduledFuture scheduledFuture;
33+
private AtomicBoolean start = new AtomicBoolean(false);
3134
private ClientNotifier clientNotifier;
3235
private JobTrackerApplication application;
3336

@@ -37,7 +40,7 @@ public class FeedbackJobSendChecker {
3740
* @return
3841
*/
3942
private boolean isStart() {
40-
return start;
43+
return start.get();
4144
}
4245

4346
public FeedbackJobSendChecker(final JobTrackerApplication application) {
@@ -64,11 +67,9 @@ public void handleFailed(List<TaskTrackerJobResultWrapper> jobResults) {
6467
*/
6568
public void start() {
6669
try {
67-
if (!start) {
68-
RETRY_EXECUTOR_SERVICE = Executors.newSingleThreadScheduledExecutor();
69-
RETRY_EXECUTOR_SERVICE.scheduleWithFixedDelay(new Runner()
70+
if (start.compareAndSet(false, true)) {
71+
scheduledFuture = RETRY_EXECUTOR_SERVICE.scheduleWithFixedDelay(new Runner()
7072
, 30, 30, TimeUnit.SECONDS);
71-
start = true;
7273
}
7374
LOGGER.info("feedback job checker started!");
7475

@@ -82,10 +83,9 @@ public void start() {
8283
*/
8384
public void stop() {
8485
try {
85-
if (start) {
86+
if (start.compareAndSet(true, false)) {
87+
scheduledFuture.cancel(true);
8688
RETRY_EXECUTOR_SERVICE.shutdown();
87-
RETRY_EXECUTOR_SERVICE = null;
88-
start = false;
8989
LOGGER.info("feedback job checker stopped!");
9090
}
9191
} catch (Throwable t) {

0 commit comments

Comments
 (0)