com.google.common.util.concurrent.MoreExecutors#addDelayedShutdownHook ( )源码实例Demo

下面列出了com.google.common.util.concurrent.MoreExecutors#addDelayedShutdownHook ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

public AsyncSnapshotPersistence(final DataSource dataSource) {
    this.dataSource = dataSource;
    COMMITTED_TRANSACTION_ID_BUFFER.add(Lists.<String>newArrayList());
    timerExecutor = Executors.newSingleThreadScheduledExecutor(ShardingThreadFactoryBuilder.build("AsyncPersistence"));
    MoreExecutors.addDelayedShutdownHook(timerExecutor, 30, TimeUnit.SECONDS);
    timerExecutor.scheduleAtFixedRate(new Runnable() {
        @Override
        public void run() {
            deleteCommittedSnapshots();
        }
    }, 10, 1000, TimeUnit.MILLISECONDS);
}
 
源代码2 项目: sharding-jdbc-1.5.1   文件: ExecutorEngine.java
public ExecutorEngine(final int executorSize) {
    executorService = MoreExecutors.listeningDecorator(new ThreadPoolExecutor(
            executorSize, executorSize, 0, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(), new ThreadFactoryBuilder().setDaemon(true).setNameFormat("ShardingJDBC-%d").build()));
    MoreExecutors.addDelayedShutdownHook(executorService, 60, TimeUnit.SECONDS);
}
 
private static ExecutorService createExecutorService(final int executorSize) {
    ThreadFactory threadFactory = ShardingThreadFactoryBuilder.build("Saga-%d");
    ExecutorService result = executorSize > 0 ? Executors.newFixedThreadPool(executorSize, threadFactory) : Executors.newCachedThreadPool(threadFactory);
    MoreExecutors.addDelayedShutdownHook(result, 60, TimeUnit.SECONDS);
    return result;
}
 
public ShardingSphereExecutorService(final int executorSize, final String nameFormat) {
    executorService = MoreExecutors.listeningDecorator(getExecutorService(executorSize, nameFormat));
    MoreExecutors.addDelayedShutdownHook(executorService, 60, TimeUnit.SECONDS);
}