python使用pymqi连接IBMMQ的类

因工作需要连接IBMMQ进行数据传输,翻越了许多资料写该类!pymqi不好安装,故使用的现成docker包运行的程序!特别注意,调测中涉及mq的编码,后改了pymqi中的原始编码解决的,其中有一处的编码被写死了(记不到具体位置了,需要看源码哦),如何在此修改bytes_encoding的编码也不会正确。

import pymqi
from recordlog import recordlog

rdlog = recordlog()
s_log, f_log = rdlog.return_logers()


class IBMMQ:
    def __init__(self, queue_manager, channel, host, port, queue_name):
        self.queue_manager = queue_manager
        self.channel = channel
        self.queue_name = queue_name
        self.conn_info = "%s(%s)" % (host, port)
        self.putq = ""
        self.qmgr = ""

    def put_mq(self, xmlfile):
        try:
            f_log.info("开始向 MQ 存入数据!")
            self.putq.put(xmlfile)
            f_log.info("MQ 存入数据成功!")
            return True
        except Exception as e:
            f_log.error("MQ存入数据报错,报错信息为:" + str(e))
            return False

    def close_mq(self):
        try:
            f_log.info("关闭 MQ 通道!")
            self.putq.close()
            f_log.info("关闭 MQ 连接!")
            self.qmgr.disconnect()
        except Exception as e:
            f_log.info("关闭 MQ 报错,报错为:" + str(e))


    def connect_mq(self):
        try:
            f_log.info("MQ连接信息:" + self.queue_manager + " " + self.channel + " " + self.conn_info)
            f_log.info("开始进行MQ连接!")
            self.qmgr = pymqi.connect(self.queue_manager, self.channel, self.conn_info, bytes_encoding='utf-8')
            f_log.info("开始获取通道:" + self.queue_name)
            self.putq = pymqi.Queue(self.qmgr, self.queue_name)
            return True
        except Exception as e:
            f_log.info("MQ连接失败,报错信息为:" + str(e))
            return False
  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值