我正在使用pyMysql将数据保存到mysql db。我有来自金融市场的报价数据的永久流。我使用cur.executemany一次插入10行。仅在前20到30行就可以正常工作-然后停止写它,并且不引发任何异常。
self.queue.append((timestamp,side,size,price))
if len(self.queue)>=10:
try:
self.logger.info("Writing 10 lines to sql..")
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='*****', db='sys')
cur = conn.cursor()
sqlQ=""" INSERT den_trades (date2 , side, size, price) VALUES (%s,%s,%s,%s)"""
cur.executemany(sqlQ, self.queue)
conn.commit()
conn.close()
self.queue=[]
except Exception as e:
self.logger.warning("Exception while cur.executemany... sys.exc_info()[0]: {}".format(sys.exc_info()[0]))
self.logger.warning("e.message ".format(e.message))
template = "An exception of type {0} occurred. Arguments:\n{1!r}"
message = template.format(type(e).__name__, e.args)
self.logger.warning(message)
conn.rollback()
我正在尝试获取一些例外情况-但没有人警告。
奇怪的是-当出现问题时-“将10行写入sql ..”对于每个刻度仍然可以正常工作-self.queue继续增长-因此self.queue = []永远不会发生..怎么回事?尝试的第一个字符串:块仍然有效,但最后一个字符串停止发生..如果是这样,应该有任何例外...对吧?
还有一件事。我有另一个在同一台机器上运行良好的脚本。该脚本通过pyMysql一次节省了1000行。 有问题吗?