rabbitmq死信队列消息监听
#邮件通知并发送队列消息
#!/bin/bash
maillog="/var/log/mq.maillog"
message_file="/tmp/mq_message"
echo "$(date +%Y-%m-%d-%H:%M:%S)" >> $maillog
receiver="xxx01@xxx.com xxx02@xxx.com"
user="xxx"
password="xxxx"
message_count=`./rabbitmqadmin.py -H mq服务器地址 -u $user -p $password list queues|column -t|grep -vE 'message|\+'|grep "deadLetterQueue"|awk '$4!=0 {print $4}'`
for i in seq ` $message_count`
do
#requeue=false会将消息取出,测试可以配成requeue=true
message_body=`./rabbitmqadmin.py -H mq服务器地址 -u $user -p $password get queue=deadLetterQueue requeue=false`
echo $message_body >> $message_file
done message=`cat $message_file`
echo $message >> $maillog
cat << EOF |mail -s "Rabbitmq Dead Letter Message" $receiver
$message
EOF rm -f "$message_file" #rabbitmqadmin.py可以通过官方的接口去下载
#短信通知
#!/bin/bash
#echo "$(date +%Y-%m-%d-%H:%M:%S)" >> $maillog
cd /root/monitor/service/rabbitmq/
message_count=`./rabbitmqadmin.py -H mq服务器地址 -u xxx -p xxxx list queues|column -t|grep -vE 'message|\+'|grep "deadLetterQueue"|awk '{print $4}'`
#message_count= if [ $message_count -eq ];then
echo "" > ./messagefile
fi
#配置告警收敛
if [ `cat messagefile` -eq ];then
if [ $message_count -gt ];then
/usr/bin/python ./message.py
echo "" > ./messagefile
fi
fi
echo "" > messagefile
message.py #使用云片网发送短信
#!/usr/bin/python
#-*- coding:utf-8 -*-
# apikey:成功注册后登录云片官网,进入后台可查看
# text:需要使用已审核通过的模板或者默认模板
# mobile:接收的手机号,仅支持单号码发送
import os
import urllib,urllib2,httplib,time
from subprocess import Popen,PIPE
def send_sms(apikey, text, mobile):
#服务地址
sms_host = "sms.yunpian.com"
#端口号
port = 443
#版本号
version = "v2"
#智能匹配模板短信接口的URI
sms_send_uri = "/" + version + "/sms/batch_send.json"
params = urllib.urlencode({'apikey': apikey, 'text': text, 'mobile':mobile})
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
conn = httplib.HTTPSConnection(sms_host, port=port, timeout=30)
conn.request("POST", sms_send_uri, params, headers)
response = conn.getresponse()
response_str = response.read()
conn.close()
return response_str
print "#"*50
if __name__=='__main__':
apikey='xxxxx'
mobile='xxxxx,xxxxxx'
message="【xx告警】Rabbitmq死信队列存在堆积消息,请注意查看!"
print message
send_sms(apikey,message,mobile)
rabbitmq死信队列消息监听的更多相关文章
- 【RabbitMQ】一文带你搞定RabbitMQ死信队列
本文口味:爆炒鱿鱼 预计阅读:15分钟 一.说明 RabbitMQ是流行的开源消息队列系统,使用erlang语言开发,由于其社区活跃度高,维护更新较快,性能稳定,深得很多企业的欢心(当然,也包括我 ...
- 简单消息监听容器--SimpleMessageListenerContainer
这个类非常强大,我们可以对他做很多设置,对于消费者的配置项,这个类都可以满足监听队列(多个队列).自动启动.自动声明功能可以设置事务特性.事务管理器.事务属性.事务容量(并发).是否开启事务.回滚消息 ...
- RabbitMQ死信队列另类用法之复合死信
前言 在业务开发过程中,我们常常需要做一些定时任务,这些任务一般用来做监控或者清理任务,比如在订单的业务场景中,用户在创建订单后一段时间内,没有完成支付,系统将自动取消该订单,并将库存返回到商品中,又 ...
- Java ActiveMQ 讲解(二)Spring ActiveMQ整合+注解消息监听
对于ActiveMQ消息的发送,原声的api操作繁琐,而且如果不进行二次封装,打开关闭会话以及各种创建操作也是够够的了.那么,Spring提供了一个很方便的去收发消息的框架,spring jms.整合 ...
- spring与activemq(三种消息监听方式)
1.3 消息监听器MessageListener 在Spring整合JMS的应用中我们在定义消息监听器的时候一共可以定义三种类型的消息监听器,分别是MessageListener.Sessio ...
- XMPP——Smack[2]会话、消息监听、字体表情和聊天窗口控制
连接之后,拿到了connection,通过它可以搞定会话 建立一个会话 MessageListener msgListener = new MessageListener() { public voi ...
- 多线程消息监听容器配置[ 消费者spring-kafka配置文件]
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- C# PC版微信消息监听自动回复
最近有个微商客户需要搞个 个人微信监听群消息关键字并实现自动回复功能, 因为他有很多群 很多买家咨询的话 一个个回复太麻烦, 客户要求 比如群里有人发 关键字 产品1 则自动回复产品1的相关描述 ...
- 使用jedis实现Redis消息队列(MQ)的发布(publish)和消息监听(subscribe)
前言: 本文基于jedis 2.9.0.jar.commons-pool2-2.4.2.jar以及json-20160810.jar 其中jedis连接池需要依赖commons-pool2包,json ...
随机推荐
- V2018.5 MB SD C4功能和软件详细信息更新
MB SD C4 现在更新为V2018.5版本.功能和HDD Xentry软件信息如下: V2018.5 MB SD C4 功能: 支持无线诊断: 支持K线诊断,CAN BUS和UDS诊断协议.(旧的 ...
- React事件,修改this.state的值
1.React中绑定事件 React中绑定事件格式: onClick = { function } React中绑定事件的标准用法: import React from 'react' export ...
- gdb插件gef安装爬坑
0x00: gdb是linux下的调试利器,但无奈界面不太友好,所以需要一些辅助插件. 0x01:关于插件选择 之前我一直使用的是pead,之前了解到还有个插件gef,因为gef支持多构架,而且hea ...
- hdu 5831 Rikka with Parenthesis II 括号匹配+交换
Rikka with Parenthesis II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- flask框架(九): 请求和响应扩展以及中间件
一:请求响应扩展 # 每一次访问都执行 # 注意请求之前按照顺序执行 # 请求之后按照书写顺序倒序执行 # 请求之前执行 @app.before_request def process_request ...
- CF762F Tree nesting
题目连接 问题分析 可以给小树钦定一个根, \(Dp[i][j]\) 表示大树上的点 \(i\) 对应到小树上的点 \(j\) 的可能的方案数.然后每一步转移都是一个状压DP(将小树是否被匹配状压,然 ...
- JavaWeb_(Struts2框架)使用Struts框架实现用户的登陆
JavaWeb_(Struts2框架)使用Servlet实现用户的登陆 传送门 JavaWeb_(Struts2框架)Servlet与Struts区别 传送门 MySQL数据库中存在Gary用户,密码 ...
- HTML标签功能分类
按功能类别对HTML标签进行分类,源自HTML 参考手册 基础 标签 描述 <!DOCTYPE> 定义文档类型. html 定义 HTML 文档. title 定义文档的标题. body ...
- IDEA项目里Maven 的Plugins出现红线的解决方法
1.删除项目里的libraries(快捷键ctrl+shift+alt+s):Project Settings->Libraries,全选删除 2.删除之前项目产生的target 3.然后再in ...
- Visual Studio Code 编辑器使用
image.png 之前一直都是用 sublime text 作为开发工具,用久了自然而然会觉得生活无趣,而且当时用sublime text 装了很多插件,有些插件不能用,于是决定试试微软的新产品 ...