我正在尝试如何构建一个“机器”,通过Twisted向webspheremq发送和接收消息。我希望它尽可能通用,这样我就可以在与MQ接口的许多不同情况下重用它。在
我以前用过Twisted,但很多年前现在,我正试图恢复我曾经拥有的知识。。。在
我遇到的具体问题是如何使用Twisted实现mqio。有一个pymqipython库与MQ接口,它提供了我需要的所有接口。我需要实现的MQ调用包括:
所有这些都涉及到阻止对MQ的调用。在
由于我打算在一系列项目中多次重用Twisted/MQ接口,我是应该将mqio作为Twisted协议、Twisted传输来实现,还是仅仅通过deferToThread()调用调用pymqi方法?我意识到这是一个非常宽泛的问题,可能没有明确的答案;我真的是在听取那些以前可能遇到过类似挑战的人的建议(例如,使用总是阻塞的排队接口),并找到了一种行之有效的方法。在
如果您打算经常使用这个功能,那么拥有一个原生Twisted实现可能是值得的。基于
deferToThread
的包装器工作量会更少,但测试和调试也会更加困难,性能也会较差,并且在某些平台上Python线程工作得不太好(例如FreeBSD)时也会出现问题。在本机Twisted实现的方法可能是实现一个协议,该协议可以与MQ服务器通信,并为它提供一个丰富的API,用于与通道、队列、队列管理器等进行交互,然后在该层之上构建一个层,将实际的网络连接从应用程序中抽象出来(我相信mqi/pymqi基本上就是这样做的)。在
相关问题 更多 >
编程相关推荐