存个根guava异步,不过这个callback这里不执行

156 阅读1分钟
 private void subscribe(JedisPubSub jedisPubSub){
        Jedis jedis = this.jedisPool.getResource();
        String[] channels = {SQSUtils.getIp()};

        // 除了ListenableFuture,guava还提供了FutureCallback接口,相对来说更加方便一些.
        ListeningExecutorService guavaExecutor = MoreExecutors.listeningDecorator(Executors.newSingleThreadExecutor());
        ListenableFuture<Nullable> listenableFuture = guavaExecutor.submit(new Callable<Nullable>() {
            @Override
            public Nullable call() throws Exception {
                jedis.subscribe(jedisPubSub, channels);
                return null;
            }
        });

        FutureCallback callback = new FutureCallback<Nullable>() {

            @Override
            public void onSuccess(@Nullable Nullable nullable) {
                log.info("========================监听本节点的请求队列初始化成功!========================");
            }

            @Override
            public void onFailure(Throwable t) {
                log.error("========================监听本节点的请求队列初始化失败!========================");
                System.exit(3);
            }
        };
        Futures.addCallback(listenableFuture, callback, guavaExecutor);
    }