making connection consistency more configurable
This commit is contained in:
@@ -27,7 +27,7 @@ _max_connections = 10
|
||||
# global connection pool
|
||||
connection_pool = None
|
||||
|
||||
def setup(hosts, username=None, password=None, max_connections=10, default_keyspace=None):
|
||||
def setup(hosts, username=None, password=None, max_connections=10, default_keyspace=None, consistency='ONE'):
|
||||
"""
|
||||
Records the hosts and connects to one of them
|
||||
|
||||
@@ -55,16 +55,17 @@ def setup(hosts, username=None, password=None, max_connections=10, default_keysp
|
||||
if not _hosts:
|
||||
raise CQLConnectionError("At least one host required")
|
||||
|
||||
connection_pool = ConnectionPool(_hosts, username, password)
|
||||
connection_pool = ConnectionPool(_hosts, username, password, consistency)
|
||||
|
||||
|
||||
class ConnectionPool(object):
|
||||
"""Handles pooling of database connections."""
|
||||
|
||||
def __init__(self, hosts, username=None, password=None):
|
||||
def __init__(self, hosts, username=None, password=None, consistency=None):
|
||||
self._hosts = hosts
|
||||
self._username = username
|
||||
self._password = password
|
||||
self._consistency = consistency
|
||||
|
||||
self._queue = Queue.Queue(maxsize=_max_connections)
|
||||
|
||||
@@ -120,7 +121,13 @@ class ConnectionPool(object):
|
||||
|
||||
for host in hosts:
|
||||
try:
|
||||
new_conn = cql.connect(host.name, host.port, user=self._username, password=self._password)
|
||||
new_conn = cql.connect(
|
||||
host.name,
|
||||
host.port,
|
||||
user=self._username,
|
||||
password=self._password,
|
||||
consistency_level=self._consistency
|
||||
)
|
||||
new_conn.set_cql_version('3.0.0')
|
||||
return new_conn
|
||||
except Exception as e:
|
||||
|
||||
@@ -7,11 +7,20 @@ Connection
|
||||
The setup function in `cqlengine.connection` records the Cassandra servers to connect to.
|
||||
If there is a problem with one of the servers, cqlengine will try to connect to each of the other connections before failing.
|
||||
|
||||
.. function:: setup(hosts [, username=None, password=None])
|
||||
.. function:: setup(hosts [, username=None, password=None, consistency='ONE'])
|
||||
|
||||
:param hosts: list of hosts, strings in the <hostname>:<port>, or just <hostname>
|
||||
:type hosts: list
|
||||
|
||||
:param username: a username, if required
|
||||
:type username: str
|
||||
|
||||
:param password: a password, if required
|
||||
:type password: str
|
||||
|
||||
:param consistency: the consistency level of the connection, defaults to 'ONE'
|
||||
:type consistency: str
|
||||
|
||||
Records the hosts and connects to one of them
|
||||
|
||||
See the example at :ref:`getting-started`
|
||||
|
||||
Reference in New Issue
Block a user