微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用数据库连接处理多线程

如何解决使用数据库连接处理多线程

为了提高性能,我尝试一次处理多条记录,因此首选多线程。每个线程都涉及数据库连接,我收到类似 pyMysqL.err.InternalError: Packet sequence number wrong - got 48 expected 1

之类的错误

在这里附上了我的代码示例。任何建议或真实答案都会有所帮助

        items = items_array
        if(items):
            print(items);
            listofProcesses = []
            number_of_items = len(items)
            processors = 20 # n of processors you want to use
            parts = [items[i:i + processors] for i in range(0,len(items),processors)]

            for part in parts:
                for f in part:
                    p = Process(target=self.parallel_print,args=(f,))
                    p.start()
                    listofProcesses.append(p)
                for p in listofProcesses:
                    p.join()

def parallel_print(self,item_code):
    frappe.get_doc("Item",item_code)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。