我正在开发一个多线程应用程序,它将Django ORM与MySQL一起使用。其思想是使用一个启动脚本来启动多个模块(这里是函数意义上的模块,而不是Python的字面意思),每个模块都有一个在自己的线程中运行的“服务循环”。我用每个模块的一个类来组织它。在
我最初是用sqlite数据库来做的,效果很好。现在我正在过渡到MySQL,遇到了与线程相关的DB连接问题。例如,看起来我需要打电话数据库连接关闭全部()以避免与数据库连接的争用?我在想,我需要将所有与Django ORM相关的设置移到服务线程中,但是这样我就无法在类的init()方法中导入模型。在
不管怎样,我相信其他人以前也处理过这个问题,而且我相信有一些好的模式。有谁有什么建议或最佳实践可以分享?在
这是我的简单启动脚本:from controller.modules.manager import Manager
from controller.modules.scanner import Scanner
print("Starting...")
# The directory scanner
scanner = Scanner()
# The job manager
manager = Manager()
下面是其中一个模块的示例(Scanner类):
^{pr2}$