我需要带有异步网络框架的芹菜吗?

Do I need celery with asynchronous web frameworks?

我指的是 aiohttp、tornado、gevent、quart、fastapi 等框架。

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

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

所以答案既可以是也可以不是。

否:如果您想自己实现 Celery 提供的所有功能,则不需要 Celery out-of-box。

YES:更务实——您使用异步框架来实现您的(网络)服务,但每当您需要分配执行某些 CPU 密集型或 long-running 任务时,你使用 Celery,因为它就是为此而生的。