Skip to content

Commit 7e88a92

Browse files
authored
Merge pull request #516 from KamToHung/fix-515
[ISSUE #515] add scheduledFuture cancel check
2 parents 8f585de + 9704b33 commit 7e88a92

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

common/src/main/java/org/dromara/dynamictp/common/util/ExecutorUtil.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ private static void tryPrintError(Runnable r, Throwable t) {
5151
if (r instanceof FutureTask) {
5252
try {
5353
FutureTask<?> future = (FutureTask<?>) r;
54-
if (future.isDone()) {
54+
if (future.isDone() && !future.isCancelled()) {
5555
future.get();
5656
}
5757
} catch (InterruptedException e) {

test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/ScheduledDtpExecutorTest.java

+11
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.springframework.test.context.junit.jupiter.SpringExtension;
3030

3131
import java.time.LocalDateTime;
32+
import java.util.concurrent.ScheduledFuture;
3233
import java.util.concurrent.TimeUnit;
3334

3435
@PropertySource(value = "classpath:/dynamic-tp-nacos-demo-dtp-dev.yml", factory = YamlPropertySourceFactory.class)
@@ -67,4 +68,14 @@ void testSubNotify() {
6768
dtpExecutor14.shutdownNow();
6869
}
6970

71+
@Test
72+
void testScheduleCancel() {
73+
ScheduledDtpExecutor dtpExecutor12 = (ScheduledDtpExecutor) DtpRegistry.getExecutor("dtpExecutor12");
74+
ScheduledFuture<?> scheduledFuture = dtpExecutor12.scheduleWithFixedDelay(() -> {
75+
System.out.println(Thread.currentThread().getName() + "进来了," +
76+
"当前时间是 ");
77+
}, 0, 1000, TimeUnit.MILLISECONDS);
78+
scheduledFuture.cancel(false);
79+
}
80+
7081
}

0 commit comments

Comments
 (0)