Cas*_*per 5 python multithreading celery
我在使用 Celery 运行任务时遇到了段错误。查找问题后,似乎其他人正在通过启动 celery 来解决类似的问题--pool=threads。
当我尝试通过时--pool=threads我得到ModuleNotFoundError: No module named 'threads'
thread我不相信这与会引发错误的模块相同No module named 'thread'。
如何开始使用线程以及它有什么作用?
Celery 站点中有关的文档--pool=threads非常稀疏。搜索“--pool”除了与台球相关的内容外不会返回任何实质性内容
刚刚发布的 Celery 4.4.0 添加--pool thread到了并发列表中。
您可以在Celery 4.4 变更日志中阅读更多内容:
\n\n\n线程任务池
\n
\n\n我们使用concurrent.futures.ThreadPoolExecutor 重新引入了线程任务池。
\n
\n\n之前的线程任务池是实验性的。此外,它基于已过时的线程池包。
\n
\n\n您可以通过将worker_pool设置为\xe2\x80\x98threads`或将\xe2\x80\x93pool线程传递给celery工作命令来使用新的线程任务池。
\n
现在您可以使用线程而不是进程进行池化。
\ncelery worker -A your_application --pool threads --loginfo=INFO\nRun Code Online (Sandbox Code Playgroud)\n
如果您想使用线程作为执行池,您可以在 eventlet 和 gevent 之间进行选择。
http://docs.celeryproject.org/en/latest/reference/celery.bin.worker.html#cmdoption-celery-worker-p
您需要pip installeventlet/gevent 才能使其工作。