@@ -2684,6 +2684,55 @@ def feishu_warning(message, message_prefix=None, rate_limit=None, url=None, user
26842684 return False
26852685
26862686
2687+ def qmsg_warning (
2688+ message ,
2689+ message_prefix = None ,
2690+ rate_limit = None ,
2691+ url = None ,
2692+ user_qq = None ,
2693+ bot_qq = None
2694+ ):
2695+ """qmsg报警"""
2696+
2697+ # 为了加载最新的配置
2698+ rate_limit = rate_limit if rate_limit is not None else setting .WARNING_INTERVAL
2699+ url = url or setting .QMSG_WARNING_URL
2700+ user_qq = user_qq or setting .QMSG_WARNING_QQ
2701+ bot_qq = bot_qq or setting .QMSG_WARNING_BOT
2702+
2703+ if isinstance (user_qq , list ):
2704+ user_qq = ',' .join (map (str , user_qq ))
2705+
2706+ if not all ([url , message ]):
2707+ return
2708+
2709+ if reach_freq_limit (rate_limit , url , user_qq , message_prefix or message ):
2710+ log .info ("报警时间间隔过短,此次报警忽略。 内容 {}" .format (message ))
2711+ return
2712+
2713+ data = {
2714+ "msg" : message ,
2715+ "qq" : user_qq ,
2716+ "bot" : bot_qq ,
2717+ }
2718+
2719+ headers = {"Content-Type" : "application/json" }
2720+
2721+ try :
2722+ response = requests .post (
2723+ url , headers = headers , data = json .dumps (data ).encode ("utf8" )
2724+ )
2725+ result = response .json ()
2726+ response .close ()
2727+ if result .get ("code" ) == 0 :
2728+ return True
2729+ else :
2730+ raise Exception (result .get ("reason" ))
2731+ except Exception as e :
2732+ log .error ("报警发送失败。 报警内容 {}, error: {}" .format (message , e ))
2733+ return False
2734+
2735+
26872736def send_msg (msg , level = "DEBUG" , message_prefix = "" , keyword = "feapder报警系统\n " ):
26882737 if setting .WARNING_LEVEL == "ERROR" :
26892738 if level .upper () != "ERROR" :
@@ -2704,6 +2753,9 @@ def send_msg(msg, level="DEBUG", message_prefix="", keyword="feapder报警系统
27042753 if setting .FEISHU_WARNING_URL :
27052754 feishu_warning (keyword + msg , message_prefix = message_prefix )
27062755
2756+ if setting .QMSG_WARNING_URL :
2757+ qmsg_warning (keyword + msg , message_prefix = message_prefix )
2758+
27072759
27082760###################
27092761
0 commit comments