使用Windows批处理脚本监测RabbitMQ队列消息堆积

@echo off
setlocal enabledelayedexpansion

:loop
:: 设置 RabbitMQ API URL 和认证信息
set "RABBITMQ_API_URL=http://192.168.110.161:15672/api/queues/%%2f/test_queue"
set "USERNAME=user"
set "PASSWORD=password"

:: 设置企业微信机器人 webhook URL
set "WECHAT_WEBHOOK_URL=https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=81df5018-c175-4f94-a805-xxxxxxxxxxxx"

:: 设置消息数量阈值和通知用户
set "THRESHOLD=10"
set "MENTIONED_LIST=[\"@all\"]"  :: 提及所有人
set "MENTIONED_MOBILE_LIST=[\"18326923280\"]"  :: 使用 JSON 格式的手机号列表

:: 查询队列信息并保存到文件
curl -s -u %USERNAME%:%PASSWORD% %RABBITMQ_API_URL% > queue_info.json

:: 从 JSON 文件中提取消息数量
for /f "tokens=*" %%a in ('powershell -Command "$json = Get-Content -Path queue_info.json -Raw | ConvertFrom-Json; $json.messages"') do set "messages=%%a"

:: 检查消息数量是否超过阈值
if !messages! gtr %THRESHOLD% (
    :: 构造企业微信机器人消息内容
    set "MESSAGE_CONTENT={\"msgtype\":\"text\",\"text\":{\"content\":\"Queue has exceeded the threshold. Current messages: !messages!.\" ,\"mentioned_mobile_list\":%MENTIONED_MOBILE_LIST%}}"

    :: 发送企业微信机器人通知
    curl -s -H "Content-Type: application/json" -d "!MESSAGE_CONTENT!" %WECHAT_WEBHOOK_URL%

    :: 输出通知已发送的消息(可选)
    echo Notification sent to WeChat workbench.  %date% %time%
) else (
    :: 输出消息数量未超过阈值的消息(可选)
    echo Queue has !messages! messages. Below threshold.  %date% %time%
)
 
:: 清理临时文件(如果需要的话)
del queue_info.json

timeout /t 300
goto loop
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值