首页 > 编程语言 >python对接事务性MSMQ队列

python对接事务性MSMQ队列

时间:2023-06-14 11:48:05浏览次数:39  
标签:事务性 name MSMQ python queue client win32com message

研究了很久,逐步了解到原理后,发现python发送消息到事务性msmq肯定可行。

现在能搜到的资源没有任何一篇文章说明了这个,包括gpt都一样。废话不多说,直接上代码

 

import win32com.client

# 关键代码 必须使用 gencache 导入 "MSMQ.MSMQQueueInfo"
win32com.client.gencache.EnsureDispatch("MSMQ.MSMQQueueInfo")

host_name = 'www.xxxxx.com'  # 可替换为 IP 地址

queues = 'send'  # 目标队列


def send_message(queue_name: str, label: str, message: str):
    """
    发送消息
    :param queue_name: 队列名称
    :param label: 标签
    :param message: 消息
    :return:
    """
    queue_info = win32com.client.Dispatch("MSMQ.MSMQQueueInfo")

    queue_info.FormatName = f'direct=tcp:{host_name}\\PRIVATE$\\{queue_name}'
    queue = None
    try:
        queue = queue_info.Open(2, 0)

        msg = win32com.client.Dispatch("MSMQ.MSMQMessage")
        msg.Label = label
        msg.Body = message

        # 是否发送事务性队列 win32com.client.constants.MQ_SINGLE_MESSAGE        
        msg.Send(queue, win32com.client.constants.MQ_SINGLE_MESSAGE)

    except Exception as e:
        print(f'Error! {e}')

    finally:
        queue.Close()


send_message(queues, 'test label', 'this is a test message')

 

标签:事务性,name,MSMQ,python,queue,client,win32com,message
From: https://www.cnblogs.com/gangjun/p/17479740.html

相关文章

  • 学了Python后还用学R语言吗?
    学习R语言是否有必要取决于你的具体需求和背景。虽然R语言和Python都是数据科学领域广泛使用的编程语言,但它们之间还是存在一些差异。如果你主要从事数据分析、统计建模或者数据可视化等工作,那么学习R语言可能更为适合。R语言在数据处理和统计分析方面具有很强的优势,并内置许多常......
  • Python中的*(星号)和**(双星号)详解 通俗易懂
    Python和C++不同,并没有指针,因此python中的*号作用和C++中不同。网上对于这方面的教程写的啰啰嗦嗦,一点不简明扼要。看的让人找不到重点。我这里快速的讲解一下。1.最简单的不用细说,是一个乘法运算符号a=1b=2c=a*b输出c当然是1×2=2。相信这并非是大家关心的重点。2.收集列表中多......
  • 对python迭代器的理解
    迭代器的接口迭代器的用法自定义迭代器迭代器的意义1迭代器的接口可迭代对象计算对象之间的共同属性得到可迭代对象的共同属性上述对象都是容器类型,都有长度加入文件对象再次求交集得到可迭代对象的唯一共同接口:_iter_生成了迭代器同样方法计算迭代器的共同......
  • Python:packaging包解析语义化版本(Semantic Versioning)
    参考文章语义化版本2.0.0语义化版本与其在Python中的使用packaging是python的pip自带包,不需要额外安装#-*-coding:utf-8-*-"""@File:demo.py@Date:2023-06-09"""frompackagingimportversioncurrent_version='1.3.4'parsed_versio......
  • python基础
    第1课初识Python程序设计语言_哔哩哔哩_bilibili主流语言介绍:编译器与解释器:python特点:......
  • 【python】关键字global
    关键字global1.局部变量和全局变量重名:定义了一个全局变量site,接着,我们定义了一个函数func,同时,在函数func里面,我们首先打印变量site的值,接着再次给变量site赋值。最后,调用函数func,此时程序报错,理论上我们在func函数里面第一次打印使用的应该是全局变量site,但实际上程......
  • python: read excel
     """Insurance。pyedit:geovindu,GeovinDu,涂聚文date2023-06-13保险类"""importsysimportosclassInsurance:"""保险类"""def__init__(self,InsuranceName,InsuranceCost,IMo......
  • python+uiautomator2判断app是否进入到闪屏广告页面
    前提背景:app内部存在多处广告,需要进行进行自动化:1.查看app是否成功跳转了页面2.页面是否空白3.大致经历的耗时主要思路如下:点击前进行截图操作,点击后进行判断判断图片是否空白defis_blank(image_path,gray_value=250,threshold=0.9):"""函数会计算一幅图像中......
  • Python调用C/C++动态库
    一、编译C++代码并封装成动态库1、创建编译dll文件的项目,在上面的官网介绍的更详细,这里就不多做介绍了。注意在vs之中新建一个项目,项目选择动态链接库(DLL)2、2.在源文件中添加cpp文件并写好函数#include<iostream>#defineMATHLIBRARY_APIextern"C"__declspec(dllexport)......
  • Python基础之subprocess模块、hashlib模块、日志模块
    subprocess模块tasklist:列举出来文件进程命令"""1.以后我们可以用自己的电脑连接上别人的电脑(socket)2.通过subprocess可以在别人的计算机上执行我们想要执行的命令3.把在别人计算机上执行的结果给返回过来"""importsubprocessimportsubprocessres=subprocess.P......