我最近一直在学习django并且偶然发现了芹菜。我似乎不明白它的作用。我去过他们的网站无济于事。任何人都可以向我解释这个概念及其真实世界的应用(简单来说)吗?
答案 0 :(得分:4)
Celery是一个基于分布式消息传递的"异步任务队列/作业队列"。它只是一个任务队列,或者是一个尽快将任务放入其中的东西。你有一个celery实例,你直接与你的django或python应用程序集成 - 这是你用来与芹菜交谈的。然后,你可以配置芹菜让工人'执行你给他们的任务。重点是能够完成django处理得非常好的正常请求/响应周期内的任务。
这些是什么类型的任务?好吧,如前所述,它们不适合正常的请求/响应周期。我能想到的最好的例子就是电子邮件 - 如果你正在建立一个网络应用程序而你想要保留你的用户,你需要让他们保持参与并回来,而这样做的好方法就是发送电子邮件。您每周发送一次或每天发送一次,他们可以配置何时发送。这非常适合请求/响应周期,但它非常适合像Celery这样的东西。
其他示例是长时间运行的作业,需要大量计算。虽然您通常会使用Hadoop之类的东西来进行非常大的计算,但您可以使用Celery安排一些查询。如果您正在做像Travis这样的事情,您也可以使用它来安排构建。用途一直在继续,但你可能会明白这一点。