小编Urj*_*jit的帖子

如何使用关闭钩子优雅地停止Guava AbstractScheduledService?

我正在使用带调度程序的AbstractScheduledService.一个简单的模式,如:

class MyService extends AbstractScheduledService {

   // KEEP THIS VAR IN MIND W.R.T the SHUTDOWN_HOOK BELOW
   public static volatile boolean keepRunning = true;

   protected void startUp() throws Exception {
     // startup stuff
   }

   protected void runOneIteration() throws Exception {
     // main logic stuff
   }

   protected void shutDown() throws Exception {
     // shutdown stuff
   }

   protected Scheduler scheduler() {
     return Scheduler.newFixedRateSchedule(0, 1, TimeUnit.SECONDS);
   }
 }
Run Code Online (Sandbox Code Playgroud)

现在,我想实现一个典型的关闭钩子:(下面的代码片段将在main方法中)

final Thread mainThread = Thread.currentThread();
        LOGGER.debug("Adding the shutdown hook");
        Runtime.getRuntime().addShutdownHook(new Thread() {
            @Override
            public void …
Run Code Online (Sandbox Code Playgroud)

java service multithreading guava shutdown-hook

4
推荐指数
1
解决办法
2550
查看次数

标签 统计

guava ×1

java ×1

multithreading ×1

service ×1

shutdown-hook ×1