Ada*_*evy 29 python concurrency soap twisted celery
我正在编写一个需要并发和异步性的Python应用程序.我已经为Twisted和Celery提出了一些建议,但是我无法确定哪个是这个应用程序的更好选择(我没有任何经验).
应用程序(不是Web应用程序)主要围绕向各种第三方API发出SOAP调用.要处理给定的数据,我需要按顺序调用几个API.而且我希望能够为每个API提供一个"工作者"池,这样我就可以一次为每个API拨打多个电话.没有什么关于这应该是非常密集的cpu.
更具体地说,外部进程将向该应用程序的数据库添加新的"消息".我需要一份监视新消息的工作,然后将它们推送到Process.该过程将包含4-5个步骤,这些步骤需要按顺序发生,但可以完全异步发生.每个步骤都将接收消息并以某种方式对其进行操作,通常会向消息添加详细信息.每个后续步骤都需要从其前面的步骤输出.对于大多数这些步骤,所涉及的工作主要围绕通常使用SOAP客户端调用第三方API,解析响应以及更新消息.一些案例将涉及创建二进制文件(如果这是一个因素,则更难腌制).最后,一旦最后一步完成,我将需要更新数据库中的标志,以指示完成此消息的整个过程.
此外,由于每个步骤都涉及等待网络响应,因此我希望通过在每个步骤中同时发出多个请求来提高整体吞吐量.
Celery或Twisted是一个更普遍合适的框架吗?如果他们都能充分解决问题,那么使用一个与另一个是否有利有弊?还有什么我应该考虑的吗?
Mat*_*ttH 16
Celery或Twisted是一个更普遍合适的框架吗?
取决于你的意思"一般适当".
如果他们都能充分解决问题,那么使用一个与另一个是否有利有弊?
不是一个详尽的清单.
芹菜优点:
芹菜缺点:
扭曲的优点:
扭曲的缺点:
我对两者都很熟悉,从你所说的,如果是我,我会选择Twisted.
我会说你会使用Celery更快地完成它,但是你可以通过使用Twisted来学习更多.如果您有时间和倾向于遵循陡峭的学习曲线,我建议您在Twisted中执行此操作.