我正在尝试使用twisted to scala在python中编写大量代码,我正在寻找关于选择哪种框架组合的意见。
这件事本质上是一个RPC(自定义基于protobuf的+ xmlrpc)/ HTTP服务器和客户端,它执行一些数据库保存和转换,但后来将rpcs发送给超出此重写范围的工作者。
作为实现RPC堆栈的网络IO /基础,我正在使用netty。旧东西中的所有工作流程都基于twisted的Deferred,并且要替换它我正在考虑直接使用ChannelFuture,或将其包装在scalaz.Promise或akka.Future中。
我想,问题的一部分是 - 它可以比手动处理回调更简单吗?我想,如果我选择这条路线,我可以稍后通过添加一些包装并使用延续来简化它,但也许我需要从一开始就使用不同的东西?
我试图将工作流程放在actor模型中,但它似乎不适用于stdlib actor。
感谢。
更新:Finagle似乎在扭曲之后,或者至少意外地类似于扭曲模型。 twitter.util.Future看起来很像扭曲的延迟。所以我暂时使用它。
更新2:我首先移植它的原因是静态类型和性能。
答案 0 :(得分:2)
Finagle似乎是在扭曲之后,或者至少意外地类似于扭曲的模型。 twitter.util.Future看起来很像扭曲的延迟。所以我暂时使用它。
答案 1 :(得分:1)
看看这个link。
这是一篇关于Scala和Python + Twisted之间性能比较的博客文章。他的代码(或他的建议)可能对你有用。