我将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:守护进程不允许有孩子
答案 0 :(得分:0)
我在django中尝试从Celery任务调用多处理函数时遇到类似的错误。我解决了使用台球而不是多处理
import billiard as multiprocessing
希望有帮助。