def communicate(*messages, &block)
      begin
        acquire do |conn|
          conn.communicate(*messages, &block)
        end
      rescue Exception => e
        logger.error("Error occurred during the communicating: #{e.inspect} #{e.backtrace}")
      end

    end
def communicate(*messages, &block)
      begin
        acquire do |conn|
          conn.communicate(*messages, &block)
        end
      rescue Exception => e
        logger.error("Error occurred during the communicating: #{e.inspect} #{e.backtrace}")
      end

    end
Initialize ConnectionPool

 @param [Integer] size Connection pool size
 @param [Block] block Create a connection in this block, have to pass a {Connection} object
 Communicate with acquired connection

 @see Connection
 @param [Array<String>] messages Messages that will be sent
 @param [Block] block Callback block that will be called when finished