我必须生成一些数据的报告,有时报告会变得非常庞大,最多需要20分钟才能完成。仅出于此目的而使用celery并不能证明费用合理,因此我不得不启动一个线程来在后台执行处理。
我读到了有关使用django进行多处理的信息,事实证明我应该手动关闭所有连接,否则我最终将把活动连接复制到线程中。我不确定这是否仍然是事情,但是我还是会做。
当前,我只是调用close_all方法,而django似乎在父线程和子线程中都重新建立了它们。
db.connections.close_all()
thread = threading.Thread(target=build_export_method)
thread.setDaemon(True)
thread.start()
这足以防止不必要的数据库连接徘徊吗?