结合使用WebSphere MQ和Twisted

问题描述 投票:0回答:1

我正在尝试弄清如何构建一个“机器”以通过Twisted向WebSphere MQ发送和接收消息。我希望它尽可能通用,因此我可以在与MQ接口的许多不同情况下重用它。

我以前使用过Twisted,但现在已经使用了很多年,我正在尝试复活我曾经拥有的知识...

我遇到的特定问题是如何使用Twisted实现MQ IO。有一个与MQ交互的pymqi Python库,它提供了我需要的所有接口。我需要实现的MQ调用是:

  • 启动到特定MQ服务器/端口/通道/队列管理器/队列组合的连接
  • 获取内容并将其作为消息发布到所需的队列中
  • 轮询队列并返回队列中下一条消息的内容
  • 向队列管理器发送请求以查找队列中当前的消息数

所有这些都涉及阻止对MQ的调用。

由于我打算在多个项目中多次重用Twisted / MQ接口,因此我应该将MQ IO实现为Twisted协议,Twisted传输,还是只通过deferToThread()调用pymqi方法( )来电?我意识到这是一个非常广泛的问题,可能没有明确的答案。我真的是从那些可能曾经遇到过类似挑战(即使用始终会阻塞的排队接口)并找到一种行之有效的方法的人那里得到建议。

我正在尝试弄清如何构建一个“机器”以通过Twisted向WebSphere MQ发送和接收消息。我希望它尽可能通用,所以我可以将其重用于许多不同的...

python ibm-mq twisted pymqi
1个回答
1
投票

如果要大量使用此功能,那么采用本地Twisted实现可能值得付出努力。基于deferToThread的包装程序工作量较小,但也将更难测试和调试,性能较差,并且在某些Python线程无法很好运行的平台(例如FreeBSD)上出现问题。

© www.soinside.com 2019 - 2024. All rights reserved.