当前位置: 首页>>代码示例>>Python>>正文


Python PooledDB.PooledDB类代码示例

本文整理汇总了Python中DBUtils.PooledDB.PooledDB的典型用法代码示例。如果您正苦于以下问题:Python PooledDB类的具体用法?Python PooledDB怎么用?Python PooledDB使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了PooledDB类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test13_MaxUsage

	def test13_MaxUsage(self):
		for threadsafety in (1, 2):
			dbapi.threadsafety = threadsafety
			for maxusage in (0, 3, 7):
				pool = PooledDB(dbapi, 0, 0, 0, 1, False, maxusage)
				self.assertEqual(pool._maxusage, maxusage)
				self.assertEqual(len(pool._idle_cache), 0)
				db = pool.connection(False)
				self.assertEqual(db._con._maxusage, maxusage)
				self.assertEqual(len(pool._idle_cache), 0)
				self.assertEqual(db._con._con.open_cursors, 0)
				self.assertEqual(db._usage, 0)
				self.assertEqual(db._con._con.num_uses, 0)
				self.assertEqual(db._con._con.num_queries, 0)
				for i in range(20):
					cursor=db.cursor()
					self.assertEqual(db._con._con.open_cursors, 1)
					cursor.execute('select test%i' % i)
					r = cursor.fetchone()
					self.assertEqual(r, 'test%i' % i)
					cursor.close()
					self.assertEqual(db._con._con.open_cursors, 0)
					if maxusage:
						j = i % maxusage + 1
					else:
						j = i + 1
					self.assertEqual(db._usage, j)
					self.assertEqual(db._con._con.num_uses, j)
					self.assertEqual(db._con._con.num_queries, j)
				db.cursor().callproc('test')
				self.assertEqual(db._con._con.open_cursors, 0)
				self.assertEqual(db._usage, j + 1)
				self.assertEqual(db._con._con.num_uses, j + 1)
				self.assertEqual(db._con._con.num_queries, j)
开发者ID:hacder,项目名称:src,代码行数:34,代码来源:TestPooledDB.py

示例2: test09_EquallyShared

	def test09_EquallyShared(self):
		for threadsafety in (1, 2):
			dbapi.threadsafety = threadsafety
			shareable = threadsafety > 1
			pool = PooledDB(dbapi, 5, 5, 5)
			self.assertEqual(len(pool._idle_cache), 5)
			for i in range(15):
				db = pool.connection(False)
				db.cursor().execute('select test')
				db.close()
			self.assertEqual(len(pool._idle_cache), 5)
			for i in range(5):
				con = pool._idle_cache[i]
				self.assertEqual(con._usage, 3)
				self.assertEqual(con._con.num_queries, 3)
			cache = []
			for i in range(35):
				db = pool.connection()
				db.cursor().execute('select test')
				cache.append(db)
				del db
			self.assertEqual(len(pool._idle_cache), 0)
			if shareable:
				self.assertEqual(len(pool._shared_cache), 5)
				for i in range(5):
					con = pool._shared_cache[i]
					self.assertEqual(con.shared, 7)
					con = con.con
					self.assertEqual(con._usage, 10)
					self.assertEqual(con._con.num_queries, 10)
			del cache
			self.assertEqual(len(pool._idle_cache), 5)
			if shareable:
				self.assertEqual(len(pool._shared_cache), 0)
开发者ID:hacder,项目名称:src,代码行数:34,代码来源:TestPooledDB.py

示例3: test11_Rollback

	def test11_Rollback(self):
		for threadsafety in (1, 2):
			dbapi.threadsafety = threadsafety
			pool = PooledDB(dbapi, 0, 1)
			self.assertEqual(len(pool._idle_cache), 0)
			db = pool.connection(False)
			self.assertEqual(len(pool._idle_cache), 0)
			self.assertEqual(db._con._con.open_cursors, 0)
			cursor = db.cursor()
			self.assertEqual(db._con._con.open_cursors, 1)
			cursor.execute('set doit1')
			db.commit()
			cursor.execute('set dont1')
			cursor.close()
			self.assertEqual(db._con._con.open_cursors, 0)
			del db
			self.assertEqual(len(pool._idle_cache), 1)
			db = pool.connection(False)
			self.assertEqual(len(pool._idle_cache), 0)
			self.assertEqual(db._con._con.open_cursors, 0)
			cursor = db.cursor()
			self.assertEqual(db._con._con.open_cursors, 1)
			cursor.execute('set doit2')
			cursor.close()
			self.assertEqual(db._con._con.open_cursors, 0)
			db.commit()
			session = db._con._con.session
			db.close()
			self.assertEqual(session, [
				'doit1', 'commit', 'dont1', 'rollback',
				'doit2', 'commit', 'rollback'])
开发者ID:hacder,项目名称:src,代码行数:31,代码来源:TestPooledDB.py

示例4: test14_SetSession

	def test14_SetSession(self):
		for threadsafety in (1, 2):
			dbapi.threadsafety = threadsafety
			setsession = ('set time zone', 'set datestyle')
			pool = PooledDB(dbapi, 0, 0, 0, 1, False, None, setsession)
			self.assertEqual(pool._setsession, setsession)
			db = pool.connection(False)
			self.assertEqual(db._setsession_sql, setsession)
			self.assertEqual(db._con._con.session,
				['time zone', 'datestyle'])
			db.cursor().execute('select test')
			db.cursor().execute('set test1')
			self.assertEqual(db._usage, 2)
			self.assertEqual(db._con._con.num_uses, 4)
			self.assertEqual(db._con._con.num_queries, 1)
			self.assertEqual(db._con._con.session,
				['time zone', 'datestyle', 'test1'])
			db.close()
			db = pool.connection(False)
			self.assertEqual(db._setsession_sql, setsession)
			self.assertEqual(db._con._con.session,
				['time zone', 'datestyle', 'test1', 'rollback'])
			db._con._con.close()
			db.cursor().execute('select test')
			db.cursor().execute('set test2')
			self.assertEqual(db._con._con.session,
				['time zone', 'datestyle', 'test2'])
开发者ID:hacder,项目名称:src,代码行数:27,代码来源:TestPooledDB.py

示例5: PooledConnectionPolicy

class PooledConnectionPolicy(DatabaseConnectionPolicyIface):
    """This connection policy maintains a pool of connections that are doled out
  as needed for each transaction.  NOTE: Appropriate for multi-threaded
  applications. NOTE: The connections are NOT shared concurrently between
  threads.
  """

    def __init__(self):
        """ Consruct an instance. The instance's open() method must be
    called to make it ready for acquireConnection() calls.
    """
        self._logger = _getLogger(self.__class__)

        self._logger.debug("Opening")
        self._pool = PooledDB(**_getCommonSteadyDBArgsDict())

        self._logger.info("Created %s", self.__class__.__name__)
        return

    def close(self):
        """ Close the policy instance and its database connection pool. """
        self._logger.info("Closing")

        if self._pool is not None:
            self._pool.close()
            self._pool = None
        else:
            self._logger.warning("close() called, but connection policy was alredy closed")
        return

    def acquireConnection(self):
        """ Get a connection from the pool.

    Parameters:
    ----------------------------------------------------------------
    retval:       A ConnectionWrapper instance. NOTE: Caller
                    is responsible for calling the  ConnectionWrapper
                    instance's release() method or use it in a context manager
                    expression (with ... as:) to release resources.
    """
        self._logger.debug("Acquiring connection")

        dbConn = self._pool.connection(shareable=False)
        connWrap = ConnectionWrapper(
            dbConn=dbConn, cursor=dbConn.cursor(), releaser=self._releaseConnection, logger=self._logger
        )
        return connWrap

    def _releaseConnection(self, dbConn, cursor):
        """ Release database connection and cursor; passed as a callback to
    ConnectionWrapper
    """
        self._logger.debug("Releasing connection")

        # Close the cursor
        cursor.close()

        # ... then return db connection back to the pool
        dbConn.close()
        return
开发者ID:Julianzz,项目名称:nupic,代码行数:60,代码来源:Connection.py

示例6: generate_accuser_url

def generate_accuser_url():
    pool = PooledDB(MySQLdb, 1, host="localhost", user="root", passwd="123456", db="abnormal")
    conn = pool.connection()
    cur = conn.cursor()
    # objFoleder = 'Report'
    objFile = open("ParseResult")
    index = 1
    # for objFile in os.listdir(objFoleder):
    count = 0
    while True:
        line = objFile.readline()
        if not line:
            break
            # print replace_struct_time(line)
        parDict = eval(replace_struct_time(line))
        reportId = parDict["reportId"]
        # soup = BeautifulSoup(os.path.join(objFoleder, objFile))
        # countText = soup.find(class_='W_f12 W_textb').text
        # accuserCount = int(patternNumber.search(countText).group())
        accuserCount = min(parDict["accuserCount"], 20)
        if accuserCount > 1:
            for i in xrange(accuserCount - 1):
                url = "http://service.account.weibo.com/aj/reportuser?rid=%s&page=%d&_t=0" % (reportId, i)
                sql = 'insert into userlinks values (%d, "%s", 0)' % (index, url)
                cur.execute(sql)
                index += 1
        print count
        count += 1
    conn.commit()
    cur.close()
    conn.close()
开发者ID:hjyoite,项目名称:WeiboAbnormal,代码行数:31,代码来源:GenerateUrl.py

示例7: generate_word_url

def generate_word_url():
    pool = PooledDB(MySQLdb, 1, host="localhost", user="root", passwd="123456", db="abnormal")
    conn = pool.connection()
    cur = conn.cursor()
    objFoleder = "Report"
    index = 1
    count = 0
    for objFile in os.listdir(objFoleder):
        reportId = objFile.split("_")[1]
        soup = BeautifulSoup(open(os.path.join(objFoleder, objFile)))
        pageTags = soup.find_all(class_="page")
        pageCountA, pageCountB = 1, 1
        if len(pageTags) > 0:
            pageCountA = len(pageTags[0].find_all("a")) - 1
        if len(pageTags) > 1:
            pageCountB = len(pageTags[1].find_all("a")) - 1
        for i in xrange(2, pageCountA + 1):
            url = "http://service.account.weibo.com/aj/showblog?type=0&rid=%s&page=%d&_t=0" % (reportId, i)
            sql = 'insert into wordlinks values (%d, "%s", 0)' % (index, url)
            cur.execute(sql)
            index += 1
        for i in xrange(2, pageCountB + 1):
            url = "http://service.account.weibo.com/aj/showblog?type=1&rid=%s&page=%d&_t=0" % (reportId, i)
            sql = 'insert into wordlinks values (%d, "%s", 0)' % (index, url)
            cur.execute(sql)
            index += 1
        print count
        count += 1
    conn.commit()
    cur.close()
    conn.close()
开发者ID:hjyoite,项目名称:WeiboAbnormal,代码行数:31,代码来源:GenerateUrl.py

示例8: __getConn

	def __getConn():
		"""
		@summary: 静态方法,从连接池中取出链接
		@return MySQLdb.connection
		"""
		if Mysql.__pool is None:
			__pool = PooledDB(creator=MySQLdb, mincache=1, maxcached=20, host=Config.DBHOST, port=Config.DBPORT, user=Config.DBPWD, db=Config.DBNAME, use_unicode=False, charset=Config.DBCHAR, cursorclass=DictCursor)
			return __pool.connection()
开发者ID:wdw110,项目名称:Little_algorithm,代码行数:8,代码来源:MysqlConn.py

示例9: _connect

 def _connect(host, user, passwd, charset, db):
     """静态方法,从连接池中取出连接
     """
     if MySQLDB_.pool is None:
         pool = PooledDB(MySQLdb, host=host, user=user, passwd=passwd,
                 charset=charset, port=3306, db=db, mincached=1,
                 maxcached=20, maxshared=2, maxconnections=2)
     return pool.connection()
开发者ID:Tyler-D,项目名称:Zfile,代码行数:8,代码来源:mysql.py

示例10: getConnect

	def getConnect(self):
		global SQLPOOL
		if SQLPOOL is None:
			SQLPOOL = PooledDB(creator=MySQLdb ,mincached=self.__cachemin , maxcached=0 ,maxshared=0,maxconnections=0,blocking=True,maxusage=0,
									host=self.__host , port=self.__port , user=self.__user , passwd=self.__passwd,
									db=self.__db,use_unicode=False,charset=self.__charset
 									,cursorclass=DictCursor
									)
		return SQLPOOL.connection()
开发者ID:sherwel,项目名称:Behavior_culture,代码行数:9,代码来源:SQLTool.py

示例11: __getConn

    def __getConn():
        if Mysqldb.__pool is None:
            __pool = PooledDB(MySQLdb, mincached=1, maxcached=20, maxconnections=20
                              , host=MysqlConfig.host, port=MysqlConfig.port
                              , user=MysqlConfig.user, passwd=MysqlConfig.password
                              , db=MysqlConfig.dbname#, use_unicode=False, charset=MysqlConfig.charset
                              , cursorclass=DictCursor)

        return __pool.connection()
开发者ID:ZeehMn,项目名称:Distributed_System,代码行数:9,代码来源:mysqllib.py

示例12: RDataBase

class RDataBase(Singleton):
    def __init__(self):
        if hasattr(self, '_init'):
            return
        self._init = True
        config = RConfig()
        self._db_pool = PooledDB(MySQLdb,
                                 user=config.db_user,
                                 passwd=config.db_passwd,
                                 host=config.db_host,
                                 port=config.db_port,
                                 db=config.db_db,
                                 mincached=config.db_mincached,
                                 maxcached=config.db_maxcached,
                                 maxshared=config.db_maxshared,
                                 maxconnections=config.db_maxconnections,
                                 cursorclass=cursors.DictCursor
                                 )

    def execute(self, sql, param):
        try:
            db = self._db_pool.connection()
            cursor = db.cursor()
            result = cursor.execute(sql, param)
        except Exception as e:
            print "MySQL Error Execute [%s] %r" % (sql, param)
            db.close()
            raise RError(1)
        db.commit()
        db.close()
        return result

    def query(self, sql, param):
        try:
            db = self._db_pool.connection()
            cursor = db.cursor()
            result = cursor.execute(sql, param)
        except Exception as e:
            print "MySQL Error [%s] %r" % (sql, param)
            db.close()
            raise RError(1)
        result = cursor.fetchall()
        db.close()
        return result

    def begin(self):
        try:
            db = self._db_pool.connection()
        except Exception as e:
            print "MySQL Error when begin an execute."
            db.close()
            raise RError(1)
        return RDataBaseConnection(db)

    def commit(self, con):
        return con.commit()
开发者ID:techpub,项目名称:http_mail,代码行数:56,代码来源:database.py

示例13: test16_ThreeThreadsTwoConnections

	def test16_ThreeThreadsTwoConnections(self):
		for threadsafety in (1, 2):
			dbapi.threadsafety = threadsafety
			pool = PooledDB(dbapi, 2, 2, 0, 2, True)
			from Queue import Queue, Empty
			queue = Queue(3)
			def connection():
				try:
					queue.put(pool.connection(), 1, 1)
				except Exception:
					queue.put(pool.connection(), 1)
			from threading import Thread
			for i in range(3):
				Thread(target=connection).start()
			try:
				db1 = queue.get(1, 1)
				db2 = queue.get(1, 1)
			except TypeError:
				db1 = queue.get(1)
				db2 = queue.get(1)
			self.assertNotEqual(db1, db2)
			db1_con = db1._con
			db2_con = db2._con
			self.assertNotEqual(db1_con, db2_con)
			try:
				self.assertRaises(Empty, queue.get, 1, 0.1)
			except TypeError:
				self.assertRaises(Empty, queue.get, 0)
			del db1
			try:
				db1 = queue.get(1, 1)
			except TypeError:
				db1 = queue.get(1)
			self.assertNotEqual(db1, db2)
			self.assertNotEqual(db1._con, db2._con)
			self.assertEqual(db1._con, db1_con)
			pool = PooledDB(dbapi, 2, 2, 1, 2, True)
			db1 = pool.connection(False)
			db2 = pool.connection(False)
			self.assertNotEqual(db1, db2)
			db1_con = db1._con
			db2_con = db2._con
			self.assertNotEqual(db1_con, db2_con)
			Thread(target=connection).start()
			try:
				self.assertRaises(Empty, queue.get, 1, 0.1)
			except TypeError:
				self.assertRaises(Empty, queue.get, 0)
			del db1
			try:
				db1 = queue.get(1, 1)
			except TypeError:
				db1 = queue.get(1)
			self.assertNotEqual(db1, db2)
			self.assertNotEqual(db1._con, db2._con)
			self.assertEqual(db1._con, db1_con)
开发者ID:hacder,项目名称:src,代码行数:56,代码来源:TestPooledDB.py

示例14: __getConn

 def __getConn():
     """
     @summary: 静态方法,从连接池中取出连接
     @return MySQLdb.connection
     """
     if Mysql.__pool is None:
         __pool = PooledDB(creator=MySQLdb, mincached=1 , maxcached=20 ,
                           host="172.16.130.87" , port=3306 , user="admin" , passwd="[email protected]" ,
                           db="finance_spiderdata",use_unicode=True,charset="utf8",cursorclass=DictCursor)
     return __pool.connection()
开发者ID:baixl,项目名称:baigit,代码行数:10,代码来源:mysqlExec.py

示例15: __init__

class TRtgHandler:
    def __init__(self,config,queue):
        self.pool = PooledDB(creator=MySQLdb,mincached=10,host=config.MYSQL_SERVER,user=config.MYSQL_USER,passwd=config.MYSQL_PASSWORD,db=config.MYSQL_DATABASE)
        self.queue = queue

    def response(self,r_id):
        conn = self.pool.connection()
        cur = conn.cursor()
        cur.execute('select d_id,response.user_id,replyDate,response.content,cat_id,category.thumb,conversation.title from response inner join (conversation inner join category using (cat_id)) using(d_id) \
                    where r_id=%s',(r_id))
        res = cur.fetchone()
        user = database.fetchUserNoCache(cur,res[1])

        escaped = util.escape(res[3])
        newContent = util.replaceMentions(cur,escaped)
        shortContent = util.replaceMentions(cur,escaped,True)
        cur.close()
        conn.close()
        
        payload = {'date':res[2].isoformat(),'content':newContent,'short':shortContent,'user':user,'r_id':r_id,'d_id':res[0]}
        self.queue.put(event.Message('/conversation/%d' % (res[0]), 'response',payload))

        happening_data = {'user':user,'date':res[2].isoformat(),'category_image':res[5],'category_id':res[4],'d_id':res[0],'title': res[6],'r_id':r_id,'content':newContent}
        self.queue.put(event.Message('/happening','happening',{'type':'response','data':happening_data}))

    def conversation(self,d_id):
        conn = self.pool.connection()
        cur = conn.cursor()
        cur.execute('select user_id,postDate,content,category.thumb,cat_id,title from conversation inner join category using (cat_id) \
                     where d_id=%s',(d_id,))
        convo = cur.fetchone()
        user = database.fetchUserNoCache(cur,convo[0])

        newContent = util.escape(convo[2])

        payload = {'id':d_id,'date':convo[1].isoformat(),'title':convo[5],'user':user,'content':newContent,'short':util.replaceMentions(cur,newContent,True)}
        cur.close()
        conn.close()
        
        self.queue.put(event.Message('/category/%d' % (convo[4]),'conversation',payload))

        happening_data = {'user':user,'date':convo[1].isoformat(),'category_image':convo[3],'d_id':d_id,'title':convo[5],'content':newContent}
        self.queue.put(event.Message('/happening','happening',{'type':'post','data':happening_data}))

    def auth(self,auth):
        self.queue.put(event.NewAuthKey(auth.user_id,auth.key))

    def userModified(self,user_id):
        conn = self.pool.connection()
        cur = conn.cursor()
        user = database.fetchUserNoCache(cur,user_id)
        cur.close()
        conn.close()

        self.queue.put(event.Message('/user/%d' % user_id,'user',user))
开发者ID:outerclub,项目名称:OuterClub,代码行数:55,代码来源:rtg.py


注:本文中的DBUtils.PooledDB.PooledDB类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。