Ejemplo n.º 1
0
 def __init__(self, creator, pool_size = 5, max_overflow = 10, timeout=30, **params):
     Pool.__init__(self, creator, **params)
     self._pool = Queue.Queue(pool_size)
     self._overflow = 0 - pool_size
     self._max_overflow = max_overflow
     self._timeout = timeout
     self._overflow_lock = self._max_overflow > -1 and threading.Lock() or None
Ejemplo n.º 2
0
 def __init__(self,
              creator,
              pool_size=5,
              max_overflow=10,
              timeout=30,
              **params):
     Pool.__init__(self, creator, **params)
     self._pool = Queue.Queue(pool_size)
     self._overflow = 0 - pool_size
     self._max_overflow = max_overflow
     self._timeout = timeout
Ejemplo n.º 3
0
    def __init__(self,
                 creator,
                 pool_size=5,
                 max_overflow=10,
                 timeout=30,
                 **params):
        """
        Construct a QueuePool.

        :param creator: a callable function that returns a DB-API
          connection object.  The function will be called with
          parameters.

        :param pool_size: The size of the pool to be maintained. This
          is the largest number of connections that will be kept
          persistently in the pool. Note that the pool begins with no
          connections; once this number of connections is requested,
          that number of connections will remain. Defaults to 5.

        :param max_overflow: The maximum overflow size of the
          pool. When the number of checked-out connections reaches the
          size set in pool_size, additional connections will be
          returned up to this limit. When those additional connections
          are returned to the pool, they are disconnected and
          discarded. It follows then that the total number of
          simultaneous connections the pool will allow is pool_size +
          `max_overflow`, and the total number of "sleeping"
          connections the pool will allow is pool_size. `max_overflow`
          can be set to -1 to indicate no overflow limit; no limit
          will be placed on the total number of concurrent
          connections. Defaults to 10.

        :param timeout: The number of seconds to wait before giving up
          on returning a connection. Defaults to 30.

        :param recycle: If set to non -1, number of seconds between
          connection recycling, which means upon checkout, if this
          timeout is surpassed the connection will be closed and
          replaced with a newly opened connection. Defaults to -1.

        :param echo: If True, connections being pulled and retrieved
          from the pool will be logged to the standard output, as well
          as pool sizing information.  Echoing can also be achieved by
          enabling logging for the "sqlalchemy.pool"
          namespace. Defaults to False.

        :param use_threadlocal: If set to True, repeated calls to
          :meth:`connect` within the same application thread will be
          guaranteed to return the same connection object, if one has
          already been retrieved from the pool and has not been
          returned yet.  Offers a slight performance advantage at the
          cost of individual transactions by default.  The
          :meth:`unique_connection` method is provided to bypass the
          threadlocal behavior installed into :meth:`connect`.

        :param reset_on_return: If true, reset the database state of
          connections returned to the pool.  This is typically a
          ROLLBACK to release locks and transaction resources.
          Disable at your own peril.  Defaults to True.

        :param listeners: A list of
          :class:`~sqlalchemy.interfaces.PoolListener`-like objects or
          dictionaries of callables that receive events when DB-API
          connections are created, checked out and checked in to the
          pool.

        """
        Pool.__init__(self, creator, **params)
        self._pool = Queue.Queue(pool_size)
        self._overflow = 0 - pool_size
        self._max_overflow = max_overflow
        self._timeout = timeout
        self._overflow_lock = self._max_overflow > -1 and threading.Lock(
        ) or None