将基于python-twisted的代码移植到scala:需要框架建议

时间:2011-05-15 11:30:54

标签: python scala twisted akka scalaz

我正在尝试使用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:我首先移植它的原因是静态类型和性能。

2 个答案:

答案 0 :(得分:2)

Finagle似乎是在扭曲之后,或者至少意外地类似于扭曲的模型。 twitter.util.Future看起来很像扭曲的延迟。所以我暂时使用它。

答案 1 :(得分:1)

看看这个link

这是一篇关于Scala和Python + Twisted之间性能比较的博客文章。他的代码(或他的建议)可能对你有用。