我有一个系统,基本上是从主进程启动线程,几个参数被传递给这些线程,我需要访问DataBase来获取这些参数。
所以代码基本上是:
from procs import Processor
from multiprocessing import Pool
active = True
while active:
parameters = Parameters.objects.all()
processor = Processor()
django.db.connections.close_all()
pool = Pool(processes=12)
pool.starmap(processor.proces, parameters)
pool.close()
pool.join()
pool.terminate()
active = int(Parameters.objects.get(dsc='is_active').value)在池结束处理后,当我尝试获取'is_active‘活动参数时,我得到ORA-03113错误。
django.db.utils.OperationalError: ORA-03113: end-of-file on communication channel on connection closing发布于 2020-01-13 22:18:24
看起来问题是:
django.db.connections.close_all()通常Django应该能够在需要时重新打开连接,但我不知道为什么没有发生,所以我通过添加以下代码行强制重新连接:
django.db.connections['default'].connect()最后的代码是:
from procs import Processor
from multiprocessing import Pool
active = True
while active:
parameters = Parameters.objects.all()
processor = Processor()
django.db.connections.close_all()
pool = Pool(processes=12)
pool.starmap(processor.proces, parameters)
pool.close()
pool.join()
pool.terminate()
django.db.connections['default'].connect()
active = int(Parameters.objects.get(dsc='is_active').value)https://stackoverflow.com/questions/59718417
复制相似问题