我正在努力学习芹菜,想知道芹菜和Pyro是不是想要达到同样的目的?
有没有人能告诉我有没有什么事情是芹菜能做而Pyro不能做的,反之亦然?
发布于 2013-01-28 04:01:03
正如我在官方网站上看到的,Celery和Pyro打算做不同的工作,但混淆是很自然的。
这两个包的目标都是帮助你进行分布式计算,但采用了不同的方法:Celery的目的是成为一个分布式任务调度器,这意味着,如果你有一堆任务(非常不相关),你可以将它们分布在计算机网格或网络上。
而 Pyro 的目标是在网络上的对象之间建立一个通信网关,这意味着,如果你有一个非常大的任务,你不能把不相关的小任务分成几个,而是用一堆对象,这些对象是独立的,但通常需要其他对象的信息,然后Pyro实现了它们之间的通信,这样你就可以在计算机网格或网络上执行分配对象的任务。
你用Django标签发布这篇文章,所以你可以说,对web应用程序执行的请求可以看作是一堆(随着并发性的增加而增加的)不相关的任务,所以Celery可能就是你要找的。
发布于 2016-12-18 01:36:54
上面的答案解释了Pyro和芹菜之间的区别。
但是,考虑到这些年来Python发生的所有其他变化,以及PiCloud库和函数选择的可用性,利用ZeroMQ和ZeroMQ的函数酸洗可能值得一看。这创造了一种全新的构建分布式堆栈的方式。
请参阅链接sample code on jeffknupp.com blog
是的,当然你可以坚持使用芹菜来开发任务的分布式工作者。使用Pyro,您可以开发远程过程调用应用程序。使用Celery和Pyro,您可以在Python世界中完成所有这些工作,而使用ZeroMQ,它们有十几种不同语言的实现,并且它实现了常见的网络模式,如PUB-SUB、REQ-RES、PIPES等。这为创建语言不可知的可能性打开了可能性。
https://stackoverflow.com/questions/14551178
复制相似问题