芹菜 --pool=threads -- 这有什么作用,我如何正确使用它?



我在使用 Celery 运行任务时遇到段错误。在查找问题后,似乎其他人正在通过用--pool=threads开始芹菜来解决类似的问题。

当我尝试通过--pool=threads时,我会得到ModuleNotFoundError: No module named 'threads'

我不相信这与thread模块相同,后者会抛出No module named 'thread'错误。

如何开始使用线程,它有什么作用?

关于芹菜网站中--pool=threads的文档非常稀少。搜索"--pool"不会返回任何实质性内容,除了与台球有关的内容

刚刚发布的 Celery 4.4.0 将--pool thread添加到并发列表中。

您可以在 Celery 4.4 更新日志中阅读更多内容:

线程任务池

我们重新引入了一个线程任务池,使用 concurrent.futures.ThreadPoolExecutor.

以前的线程任务池是实验性的。此外,它基于已过时的线程池包。

您可以通过将worker_pool设置为"线程"或将 –pool 线程传递给 celery worker 命令来使用新的线程任务池。

现在,您可以使用线程而不是进程进行池化。

celery worker -A your_application --pool threads --loginfo=INFO

如果要使用线程作为执行池,可以在 eventlet 和 gevent 之间进行选择。

http://docs.celeryproject.org/en/latest/reference/celery.bin.worker.html#cmdoption-celery-worker-p

您需要pip installeventlet/gevent 才能使其正常工作。

相关内容

  • 没有找到相关文章

最新更新