我用 django 构建了一个 Web 服务器。
并使用一个线程来运行任务,将客户端发送的数据保存到数据库中。
Run Code Online (Sandbox Code Playgroud)while True: ... try: self.dbTarget, created = ClientMonitor.objects.get_or_create(Machine_code=own_MachC) data = self.workQueue.get() #from client sent self.dbTarget.setValue(data) #Custom method assigning self.dbTarget.save() #django ORM except InterfaceError as ee: pass
该线程是长时间运行的,但长时间运行后会抛出InterfaceError,因为mysql服务器因八小时超时而断开连接。
特别是它不能自动重新连接到数据库。创建一个新线程就可以了,但是会增加资源占用。
所以我想在同一线程中关闭连接时重新连接数据库。此外,Django 每个请求都会获得一个新的连接。
如何在同一线程中获得与数据库的新连接?谢谢你!!!