Пример #1
0
def queue_mnt():
	"""公司称名数据分配进程。
	公司名称的基本数据表命名格式 base_省份简称。
	自动提取以base_为前缀的公司基本表中的数据当对应的队列元素小于
	设定的阀值queue_threshold时。
	   
	"""
	db  = mysqlwrap.get_db()
	index_rd = rediswrap.get_hash('wbsp:gov:baseindex')
	while 1:
		try:
			sql = "SHOW TABLES LIKE 'base_%'"
			res, desc = db.query(sql)
			if res==0 and desc:
				for row in desc:
					tb = list(row.values())[0]
					q  = rediswrap.get_queue('wbsp:gov:queue.%s'%tb)
					#print('tb:%s q_len:%s' % (tb,q.__len__()))
					if q.__len__() >= queue_threshold:
						continue
					index = index_rd.get(tb,0)
					#print('tb:%s index:%s' % (tb,index))
					sql = "select id,name from %s where id >%s limit %s" % (tb,index,rows_limit)
					#print(sql)
					rs, ds = db.query(sql)
					if rs==0 and ds:
						id = 0
						for d in ds:
							id = d['id']
							q.push(d['name'])
						index_rd.set(tb,id)
		except Exception as e:
			traceback.print_exc()	
						
		time.sleep(10)
Пример #2
0
def get_tmp_queue():
	"""
	存放插入数据库失败的记录
	"""
	name = "wbsp:gov:queue.tmp"
	return rediswrap.get_queue(name)	
Пример #3
0
def get_row_queue(tbname):
	"""存放待验证的公司名称的队列
	   @name 以base_为前缀的mysql表
	"""
	name = "wbsp:gov:queue.base_" + tbname
	return rediswrap.get_queue(name)