code: private void disconnect(RedisChannelHandler<?, ?> redisChannelHandler) {
  
          RedisChannelHandler<?, ?> rch = redisChannelHandler;
          RedisChannelWriter<?, ?> channelWriter = rch.getChannelWriter();
  
          try {
              Field field = CommandHandler.class.getDeclaredField("channel");
              field.setAccessible(true);
              Channel o = (Channel) field.get(channelWriter);
              if (o != null && o.isOpen()) {
                  o.disconnect();
              }
          } catch (Exception e) {
              throw new IllegalStateException("Cannot look up/retrieve the channel from the " + CommandHandler.class.getName());
          }
      }
docs: Disconnect the channel. Why {@link Channel#disconnect()} and not {@link DisqueCommands#quit()}? The quit command produces
  an {@code OK} result which is read by the channel. Sometimes the pipeline is not finished with reading but the disconnect
  is already initiated and this raises an {@link java.io.IOException}.
  
  The {@link Channel} is retrieved by reflection because it is not exposed.
  
  @param redisChannelHandler the channel handler.