def processor(reqQ, resQ): gDbDict = {} while True: reqType, key, dbName, value = reqQ.get() print 'get req for %s'%dbName try: db = gDbDict[dbName] except KeyError: db = dictShoveDb.getDbV4(dbName) gDbDict[dbName] = db if '0' == reqType: #End req return if '1' == reqType: #Query try: resQ.put(db[key]) print 'find %s = %s'%(key, db[key]) except KeyError: print '%s not exist'%key.encode('gb2312', 'replace') resQ.put([]) if '2' == reqType: print 'set:%s = %s'%(key.encode('gb2312', 'replace'),value.encode('gb2312', 'replace')) db[key] = value
''' def handle_read(self): global gData gData += self.recv(8192) l = gData.split('\n') while len(l) > 4: #Have a total request, process it reqType = unicode(l[0]) key = unicode(l[1]) value = unicode(l[2]) dbName = unicode(l[3]) print 'get req for %s'%dbName try: db = gDbDict[dbName] except KeyError: db = dictShoveDb.getDbV4(dbName) gDbDict[dbName] = db self.processRequest(reqType, key, value, db) l = l[4:]