gpt4 book ai didi

Python 多处理 : DB connection not available

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:26:08 26 4
gpt4 key购买 nike

我有一个使用 Python 2.7 运行的 Django(1.6) 服务器。我正在尝试使用多处理来并行处理繁重的计算。在 Windows 上,生成的 python 进程获取数据库连接并能够正常工作。但是在 Linux 服务器上,Python 进程无法访问数据库。

谁能帮我看看如何让它在 Linux 上运行。

代码:

def __init__(self, func):
self.func = func
self.pool = Pool(processes=1)

def call(self, *args, **kwargs):
db.close_connection()
self.pool.apply_async(self.func, args)

def wait(self):
self.pool.close()
self.pool.join()

最佳答案

Django 与所有进程使用相同的数据库连接,因此当您在每个进程中访问数据库时,它们有时会使用相同的连接发生冲突并最终崩溃。

更好的方法是对于子进程中的每个任务,强制数据库关闭连接并建立新的数据库连接:

from django import db

def subprocess_task():
db.close_connection()

关于Python 多处理 : DB connection not available,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34788422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com