Async::RedisSourceAsyncRedisContextGeneric

class Generic

Base class for Redis command execution contexts.

Definitions

def initialize(pool, *arguments)

Initialize a new generic context.

Signature

parameter pool Pool

The connection pool to use.

parameter arguments Array

Additional arguments for the context.

Implementation

def initialize(pool, *arguments)
	@pool = pool
	@connection = pool.acquire
end

def close

Close the context and release the connection back to the pool.

Implementation

def close
	if @connection
		@pool.release(@connection)
		@connection = nil
	end
end

def write_request(command, *arguments)

Write a Redis command request to the connection.

Signature

parameter command String

The Redis command.

parameter arguments Array

The command arguments.

Implementation

def write_request(command, *arguments)
	@connection.write_request([command, *arguments])
end

def read_response

Read a response from the Redis connection.

Signature

returns Object

The Redis response.

Implementation

def read_response
	@connection.flush
	
	return @connection.read_response
end

def call(command, *arguments)

Execute a Redis command and return the response.

Signature

parameter command String

The Redis command.

parameter arguments Array

The command arguments.

returns Object

The Redis response.

Implementation

def call(command, *arguments)
	write_request(command, *arguments)
	
	return read_response
end