@Override
    public <T> void register(Class<T> remoteInterface, T object) {
        register(remoteInterface, object, 1);
    }
@Test
    public void testExecutorAsync() throws InterruptedException {
        RedissonClient r1 = createInstance();
        ExecutorService executor = Executors.newSingleThreadExecutor();
        r1.getRemoteService().register(RemoteInterface.class, new RemoteImpl(), 1, executor);
        
        RedissonClient r2 = createInstance();
        RemoteInterfaceAsync ri = r2.getRemoteService().get(RemoteInterfaceAsync.class);
        
        RFuture<Void> f = ri.voidMethod("someName", 100L);
        f.toCompletableFuture().join();
        RFuture<Long> resFuture = ri.resultMethod(100L);
        assertThat(resFuture.toCompletableFuture().join()).isEqualTo(200);

        r1.shutdown();
        r2.shutdown();
        
        executor.shutdown();
        executor.awaitTermination(1, TimeUnit.MINUTES);
    }