python的lib pymysql停止随机回复

时间:2019-02-05 11:58:39

标签: python mysql

我正在使用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行。 有问题吗?

0 个答案:

没有答案