首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用celery运行线程模块;守护进程不允许有子进程

使用celery运行线程模块;守护进程不允许有子进程
EN

Stack Overflow用户
提问于 2019-02-17 05:28:02
回答 1查看 576关注 0票数 1

我已经在我的flask应用程序中实现了一个带有芹菜的队列。一切都运行良好。但是我需要使用this module called sublist3r,当我在芹菜任务中使用它时,我收到了这个错误:

代码语言:javascript
运行
复制
[2019-02-16 21:32:52,658: INFO/ForkPoolWorker-6] Task tasks.task.addd[57793628-de25-4c89-a265-5fee69a8b2bf] succeeded in 0.0236732449848s: None
[2019-02-16 21:32:52,660: WARNING/ForkPoolWorker-6] Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/home/me/code/proj/tasks/task.py", line 15, in getd
    sub = sublist3r.main(url, 40, None, ports=None, silent=True,verbose=False, enable_bruteforce=False, engines=None)
  File "/home/me/code/proj/sublist3r/sublist3r.py", line 871, in main
    subdomains_queue = multiprocessing.Manager().list()
  File "/usr/lib/python2.7/multiprocessing/__init__.py", line 99, in Manager
    m.start()
  File "/usr/lib/python2.7/multiprocessing/managers.py", line 524, in start
    self._process.start()
  File "/usr/lib/python2.7/multiprocessing/process.py", line 124, in start
    'daemonic processes are not allowed to have children'
**AssertionError: daemonic processes are not allowed to have children**

这是因为我试图使用一个使用线程的模块吗?我怎样才能在队列中或异步地使用这个模块?

谢谢

EN

Stack Overflow用户

发布于 2019-02-18 03:38:56

sublist3r似乎使用了多进程,并试图启动自己的进程。您不能在celery中做到这一点,因为在生产中,celery已经在其自己的子进程中启动了一个工作进程,并且从错误消息中可以看出,celery不允许您启动sublist3r使用的多进程。如果您想使用它,最好的办法是自己在sublist3r中重写这些类,以派生自celery.Task而不是multiprocessing.Process

票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54727821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档