gpt4 book ai didi

python - Celery 与 ProcessPoolExecutor/ThreadPoolExecutor

转载 作者:太空狗 更新时间:2023-10-29 17:50:09 27 4
gpt4 key购买 nike

我正在创建一个 Django 网络服务器,它允许用户在本地机器上运行一些“可执行文件”并通过网页分析它们的输出。

我之前曾使用 Celery 任务队列在类似情况下运行“可执行文件”。然而,在阅读了 Python 之后 concurrent.futures ,我开始怀疑我是否应该使用 ThreadPoolExecutor,或 ProcessPoolExecutor(或 ThreadPoolExecutor inside a ProcessPoolExecutor :D ) 而不是?

谷歌搜索我只能找到 one relevant question比较 Celery 和 Tornado,它转向单独使用 Tornado。

那么我应该为我的简单网络服务器使用 Celery 还是 PoolExecutor,为什么?

最佳答案

如果出现以下情况,您需要使用 celery :

  1. 您想独立于网络服务器轻松扩展
  2. 您想要一种方法来监控您的任务并在失败时重试
  3. 您想创建更高级的任务执行模式(例如链接它们)

除此之外,还有一个非常成熟的库,其中包含辅助项目,可在 UI 呈现方面为您提供帮助,请查看 Jobtastic .

如果您不需要任何列出的点,您只需要执行此任务而不关心太多状态,也没有特别的可扩展性需求,而只是保持简单。

关于使用 ThreadPoolExecutorProcessPoolExecutor 请记住,第二个将只能接收和返回可拾取对象,第一个将生成附加到您的子线程主进程(如果您没有在另一个分离进程中使用它,则可能是您的网络服务器),因此根据您的实现细节,混合它们的方法可能有意义。

关于python - Celery 与 ProcessPoolExecutor/ThreadPoolExecutor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37290653/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com