我需要带有异步Web框架的celery吗?

问题描述

我指的是aiohttp,龙卷风,gevent,quart,fastapi等框架。

如果您正在寻找有关如何将芹菜与django和flask结合使用以完成后台任务和定期任务之类的教程,例如,当用户注册以确认其帐户时发送电子邮件,您会发现很多内容关于它。但是上面的那些不是,或者他们很少,并且除了执行背景任务或定期任务之外,他们还谈论其他主题。这是否意味着我不需要这些框架,因为它们是异步的,所以我可以做同样的事情?

解决方法

Celery(以及类似Huey或RQ的同类产品)与您列出的框架具有不同的用途。无论选择哪种框架,为了在(可能数百个)节点之间分配任务的执行,您都需要自己实现整个系统。如果您想实现诸如Celery工作流之类的事情,事情将会变得更加复杂。

所以答案可能是肯定的,也可能不是。

否:如果您想自行实现Celery提供的所有功能,则不需要Celery。

是:更加实用-您使用异步框架来实现您的(网络)服务,但是每当您需要分发执行一些CPU密集型任务或长时间运行的任务时,都可以使用Celery,因为这就是它是为。