11

我正在尝试了解 Celery 并且想知道 Celery 和 Pyro 是否正在尝试实现相同的目标?

有人可以告诉我,Celery 可以做什么,而 Pyro 不能,反之亦然?

4

2 回答 2

15

正如我在官方网站上看到的,CeleryPyro打算做不同的工作,但混淆是很自然的。

这两个软件包的目标是帮助您进行分布式计算,但采用不同的方法:Celery旨在成为分布式任务调度程序,这意味着,如果您有一堆任务(非常不相关),您可以将它们分布在计算机网格上或通过网络。

虽然,Pyro旨在通过网络在对象之间建立一个通信网关,这意味着,如果你有一个相当大的任务,你不能分成一些不相关的小任务,而是有一堆独立但通常需要的对象有关其他人的信息,然后 Pyro 启用它们之间的通信,因此您可以执行在计算机网格中或通过网络分发对象的任务。

您使用 Django 标记发布此内容,因此您可以说,对 Web 应用程序执行的请求可以被视为一堆(随着并发性增加而增加的一大堆)不相关的任务,因此Celery可能成为你正在寻找的东西。

于 2013-01-27T20:01:03.463 回答
2

上面的答案解释了 Pyro 和 Celery 之间的区别。

但鉴于多年来 Python 发生的所有其他变化以及 Python ZeroMQ 库和函数选择的可用性,可能值得看看利用 ZeroMQ 和 PiCloud 的函数酸洗。这创造了一种全新的方式来构建分布式堆栈。

请参阅jeffknupp.com 博客上的链接示例代码

是的,当然你可以坚持使用 Celery 来开发分布式任务工作者。使用 Pyro,您可以开发远程过程调用应用程序。使用 Celery 和 Pyro,您可以在 Python 世界中完成所有这些工作,而使用 ZeroMQ,它们有十几种不同语言的实现,并且它实现了网络的常见模式,如 PUB-SUB、REQ-RES、PIPES 等。这就打开了创造语言不可知的可能性的可能性。

于 2016-12-17T17:36:53.997 回答