Python中的实时静态mysql
我每10秒就有300多个表要在mysql中计数。每个表对应每个统计表 例如:Python中的实时静态mysql,python,mysql,Python,Mysql,我每10秒就有300多个表要在mysql中计数。每个表对应每个统计表 例如: def pool_func(pool, table_name): for name in table_name: pool.add(gevent.spawn(BaseStat(table_name=name).run)) pool.join() 运行:(我使用crontab进行部署,每分钟运行一次) 自我频率=10 def运行(自): 尝试: 如果self.table_name为无:
def pool_func(pool, table_name):
for name in table_name:
pool.add(gevent.spawn(BaseStat(table_name=name).run))
pool.join()
运行:(我使用crontab进行部署,每分钟运行一次)
自我频率=10
def运行(自):
尝试:
如果self.table_name为无:
引发异常(“您应该设置BaseStat表名称”)
self.stat\u table\u name=self.table\u name+self.table\u stat\u后缀
开始=0
self._run_stat()
当开始<60时:
启动+=自频率
gevent.睡眠(自我频率)
self.start\u time,self.end\u time=self.\u get\u time(self.start\u time,self.end\u time)
self._run_stat()
例外情况除外,如e:
logger.get(“stat log”).error(“[%s]:%s”%(self.table_name,util.error_msg()))
当表的数量较少时,它可以正常工作,但现在至少延迟2分钟。
pool_func
运行的总时间约为578.056058168秒self.frequency的值是多少?self.frequency的值是10谢谢@klauds。self.frequency
的值是多少?self.frequency的值是10谢谢@klauds。
def run(self):
try:
if self.table_name is None:
raise Exception("You should set BaseStat table_name")
self.stat_table_name = self.table_name + self.table_stat_suffix
start = 0
self._run_stat()
while start < 60:
start += self.frequency
gevent.sleep(self.frequency)
self.start_time, self.end_time = self._get_time(self.start_time, self.end_time)
self._run_stat()
except Exception as e:
logger.get("stat-log").error("[%s] : %s" % (self.table_name, util.error_msg()))