Skip to content

Commit 716f90e

Browse files
committed
#459 Refactor speed up shutdown
1 parent ee9d35b commit 716f90e

File tree

5 files changed

+16
-57
lines changed

5 files changed

+16
-57
lines changed

saturn-core/src/main/java/com/vip/saturn/job/basic/AbstractElasticJob.java

-7
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,6 @@ public void shutdown() {
9696
}
9797
}
9898

99-
@Override
100-
public void shutdownGracefully() {
101-
if (scheduler != null) {
102-
scheduler.shutdownNow();
103-
}
104-
}
105-
10699
public ExecutorService getExecutorService() {
107100
return jobScheduler.getExecutorService();
108101
}

saturn-core/src/main/java/com/vip/saturn/job/basic/JobScheduler.java

+6-32
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,6 @@ public void shutdown(boolean removejob) {
291291
try {
292292
if (job != null) {
293293
job.shutdown();
294-
Thread.sleep(500);// NOSONAR
295294
}
296295
} catch (final Exception e) {
297296
log.error(String.format(SaturnConstant.LOG_FORMAT_FOR_STRING, jobName, e.getMessage()), e);
@@ -310,12 +309,13 @@ public void shutdown(boolean removejob) {
310309
limitMaxJobsService.shutdown();
311310

312311
zkCacheManager.shutdown();
313-
try {
314-
Thread.sleep(500);// NOSONAR
315-
} catch (InterruptedException ignore) {
316-
log.warn(ignore.getMessage());
317-
}
312+
318313
if (removejob) {
314+
try {
315+
Thread.sleep(500);// NOSONAR
316+
} catch (InterruptedException ignore) {
317+
log.warn(ignore.getMessage());
318+
}
319319
jobNodeStorage.deleteJobNode();
320320
saturnExecutorService.removeJobName(jobName);
321321
}
@@ -327,32 +327,6 @@ public void shutdown(boolean removejob) {
327327
}
328328
}
329329

330-
public void shutdownGracefully() {
331-
synchronized (isShutdownFlag) {
332-
isShutdownFlag.set(true);
333-
if (job != null) {
334-
job.shutdownGracefully();
335-
}
336-
listenerManager.shutdown();
337-
shardingService.shutdown();
338-
configService.shutdown();
339-
leaderElectionService.shutdown();
340-
serverService.shutdown();
341-
executionContextService.shutdown();
342-
executionService.shutdown();
343-
failoverService.shutdown();
344-
statisticsService.shutdown();
345-
analyseService.shutdown();
346-
limitMaxJobsService.shutdown();
347-
zkCacheManager.shutdown();
348-
349-
JobRegistry.clearJob(executorName, jobName);
350-
if (executorService != null && !executorService.isShutdown()) {
351-
executorService.shutdown();
352-
}
353-
}
354-
}
355-
356330
/**
357331
* 重新调度作业.
358332
*

saturn-core/src/main/java/com/vip/saturn/job/basic/Stopable.java

-5
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,4 @@ public interface Stopable {
4444
* 关闭作业
4545
*/
4646
void shutdown();
47-
48-
/**
49-
* 优雅关闭作业
50-
*/
51-
void shutdownGracefully();
5247
}

saturn-core/src/main/java/com/vip/saturn/job/executor/SaturnExecutor.java

+4-8
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,7 @@ private void shutdownAllCountThread() {
458458
}
459459
}
460460

461-
private void shutdownUnfinishJob(boolean shutdownGracefully) {
461+
private void shutdownUnfinishJob() {
462462
Map<String, JobScheduler> schdMap = JobRegistry.getSchedulerMap().get(executorName);
463463
if (schdMap != null) {
464464
Iterator<String> it = schdMap.keySet().iterator();
@@ -470,11 +470,7 @@ private void shutdownUnfinishJob(boolean shutdownGracefully) {
470470
log.info("[{}] msg=job {} is enabled, force shutdown.", jobName, jobName);
471471
jobScheduler.stopJob(true);
472472
}
473-
if (shutdownGracefully) {
474-
jobScheduler.shutdownGracefully();
475-
} else {
476-
jobScheduler.shutdown(false);
477-
}
473+
jobScheduler.shutdown(false);
478474
}
479475
}
480476
}
@@ -490,7 +486,7 @@ private void shutdown0() throws Exception {
490486
if (saturnExecutorService != null) {
491487
saturnExecutorService.unregisterJobsWatcher();
492488
}
493-
shutdownUnfinishJob(false);
489+
shutdownUnfinishJob();
494490
if (saturnExecutorService != null) {
495491
saturnExecutorService.unregisterExecutor();
496492
}
@@ -537,7 +533,7 @@ private void shutdownGracefully0() throws Exception {
537533
TimeoutSchedulerExecutor.shutdownScheduler(executorName);
538534
try {
539535
blockUntilJobCompletedIfNotTimeout();
540-
shutdownUnfinishJob(true);
536+
shutdownUnfinishJob();
541537
JobRegistry.clearExecutor(executorName);
542538
} finally {
543539
if (connectionLostListener != null) {

saturn-core/src/main/java/com/vip/saturn/job/trigger/SaturnScheduler.java

+6-5
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.util.concurrent.ExecutorService;
1111
import java.util.concurrent.Executors;
1212
import java.util.concurrent.ThreadFactory;
13+
import java.util.concurrent.TimeUnit;
1314

1415
/**
1516
* @author chembo.huang
@@ -56,11 +57,11 @@ public Trigger getTrigger() {
5657
public void shutdown() {
5758
saturnQuartzWorker.halt();
5859
executor.shutdown();
59-
}
60-
61-
public void shutdownNow() {
62-
saturnQuartzWorker.halt();
63-
executor.shutdownNow();
60+
try {
61+
executor.awaitTermination(500, TimeUnit.MICROSECONDS);
62+
} catch (InterruptedException e) {
63+
Thread.currentThread().interrupt();
64+
}
6465
}
6566

6667
public void triggerJob() {

0 commit comments

Comments
 (0)