AssertionError:守护进程不允许有子进程

时间:2018-12-12 09:59:32

标签: celery python-3.5 python-multiprocessing

我将celery 4.2.1和python 3.5一起使用。 我的多处理代码如下:

import multiprocessing
from multiprocessing.managers import BaseManager

class MyManager(BaseManager):
    pass

MyManager.register(str("Conns"), ConnClass)
multiprocessing.freeze_support()

if __name__ == 'tasks':
    multiprocessing.freeze_support()
    mana = MyManager()
    mana.start()
    glob = mana.Conns()

此功能可在Ubuntu 16.04上使用,但不适用于WINDOWS7。出现以下错误

mana.start() 文件“ c:\ users \ seshabhattar \ appdata \ local \ programs \ python \ python35 \ Lib \ multiprocessing \ managers.py”,开始 self._process.start()

文件“ c:\ users \ seshabhattar \ appdata \ local \ programs \ python \ python35 \ Lib \ multiprocessing \ process.py”,在开始处的第103行

“守护进程不允许有孩子”

AssertionError:守护进程不允许有孩子

1 个答案:

答案 0 :(得分:0)

我在django中尝试从Celery任务调用多处理函数时遇到类似的错误。我解决了使用台球而不是多处理

import billiard as multiprocessing

希望有帮助。