我想在 python 中使用 celery 来使用并发。我有一个 tasks.py 文件,它是一个使用 BeautifulSoup 的网络爬虫。我所做的进口是:
from celery import Celery
import eventlet
app = Celery('tasks', backend='amqp', broker='amqp://')
对于芹菜工人,我使用这个命令:
celery -A tasks worker --loglevel=info --pool=eventlet -c 1000
错误:
mayank@mayank-Studio-1558:~/cognite/test$ celery -A tasks worker --loglevel=info -- pool=eventlet -c 1000
Traceback (most recent call last):
File "/usr/local/bin/celery", line 11, in <module>
sys.exit(main())
File "/usr/local/lib/python2.7/dist-packages/celery/__main__.py", line 28, in main
maybe_patch_concurrency()
File "/usr/local/lib/python2.7/dist-packages/celery/__init__.py", line 124, in maybe_patch_concurrency
patcher()
File "/usr/local/lib/python2.7/dist-packages/celery/__init__.py", line 89, in _patch_eventlet
eventlet.monkey_patch()
AttributeError: 'module' object has no attribute 'monkey_patch'
我想使用 1000 个线程执行任务。我试过导入eventlet,然后做了:
eventlet.monkey_patch(socket=True, select=True)
eventlet.import_patched('monkey_patch')
仍然没有工作,同样的错误。
请如果有人可以提供帮助,那就太好了。谢谢。