qinglong系统通知集成:20+通知渠道配置与使用指南
2026-02-04 04:13:22作者:齐冠琰
还在为定时任务执行结果无法及时获知而烦恼?每次都要手动登录服务器查看日志?qinglong(青龙)强大的通知系统帮你彻底解决这个痛点!本文将全面解析qinglong支持的20+通知渠道,手把手教你配置和使用,让你的定时任务管理更加智能化。
读完本文你能得到什么
- ✅ 全面了解qinglong支持的20+通知渠道
- ✅ 掌握每种通知渠道的详细配置方法
- ✅ 学会在脚本中调用通知功能的实战技巧
- ✅ 了解通知系统的架构设计和实现原理
- ✅ 获得最佳实践和故障排除指南
qinglong通知系统架构概览
graph TB
A[定时任务执行] --> B[任务执行结果]
B --> C[NotificationService]
C --> D[通知渠道分发]
D --> E[Gotify]
D --> F[即时通讯Bot]
D --> G[钉钉机器人]
D --> H[企业微信]
D --> I[邮件通知]
D --> J[Webhook]
D --> K[...20+渠道]
20+通知渠道全解析
1. 即时通讯类通知
1.1 即时通讯Bot通知
即时通讯Bot是最受欢迎的通知渠道之一,配置简单,推送稳定。
配置参数:
instantMessagingBotToken: Bot Token(从官方获取)instantMessagingBotUserId: 用户或群组IDinstantMessagingBotApiHost: API地址(可选,默认官方API)instantMessagingBotProxyHost: 代理主机(可选)instantMessagingBotProxyPort: 代理端口(可选)
环境变量配置:
export IM_BOT_TOKEN="1407203283:AAG9rt-6RDaaX0HBLZQq0laNOh898iFYaRQ"
export IM_USER_ID="1434078534"
1.2 钉钉机器人通知
钉钉机器人适合国内企业用户,支持加签安全验证。
配置参数:
dingtalkBotToken: Webhook TokendingtalkBotSecret: 加签密钥(可选)
环境变量配置:
export DD_BOT_TOKEN="693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa"
export DD_BOT_SECRET="SECxxxxxxxx"
1.3 企业微信通知
支持两种方式:机器人Webhook和企业微信应用消息。
机器人Webhook配置:
export QYWX_KEY="693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa"
应用消息配置(更强大):
export QYWX_AM="corpid,corpsecret,touser,agentid,thumb_media_id"
2. 推送服务类通知
2.1 Bark推送(iOS专属)
Bark是iOS设备专属的推送服务,无需安装额外应用。
配置参数:
barkPush: Bark服务器地址或设备码barkIcon: 推送图标(可选)barkSound: 提示音(可选)barkGroup: 分组名称(可选)barkLevel: 时效性(可选)
环境变量配置:
export BARK_PUSH="https://api.day.app/DxHcxxxxxRxxxxxxcm"
export BARK_GROUP="qinglong"
export BARK_SOUND="minuet"
2.2 Server酱(ServerChan)
老牌推送服务,支持微信通知。
配置参数:
serverChanKey: SCKEY或SendKey
环境变量配置:
export PUSH_KEY="SCTxxxxxxTxxxxxx"
2.3 PushPlus推送加
功能丰富的推送平台,支持多渠道。
配置参数:
pushPlusToken: 用户令牌pushPlusUser: 群组编码(可选)pushPlusTemplate: 模板类型(html/txt/json等)pushplusChannel: 发送渠道(wechat/webhook等)
环境变量配置:
export PUSH_PLUS_TOKEN="xxxxxxxxxx"
export PUSH_PLUS_TEMPLATE="html"
export PUSH_PLUS_CHANNEL="wechat"
3. 邮件通知
传统的邮件通知,适合正式场景。
配置参数:
emailService: 邮件服务商(163、qq、gmail等)emailUser: 发件邮箱emailPass: 邮箱密码或授权码emailTo: 收件邮箱(可选,默认为发件邮箱)
环境变量配置:
export SMTP_SERVICE="163"
export SMTP_EMAIL="your_email@163.com"
export SMTP_PASSWORD="your_password"
export SMTP_TO="receiver@example.com"
4. 自定义Webhook通知
最灵活的通知方式,可以对接任何系统。
配置参数:
webhookUrl: Webhook地址(支持content变量)webhookMethod: 请求方法(GET/POST/PUT)webhookHeaders: 请求头(JSON格式)webhookBody: 请求体(支持变量替换)webhookContentType: 内容类型
环境变量配置:
export WEBHOOK_URL="https://your-api.com/notify?title=$title&content=$content"
export WEBHOOK_METHOD="POST"
export WEBHOOK_HEADERS='{"Content-Type":"application/json","Authorization":"Bearer token"}'
export WEBHOOK_BODY='{"msg":"$content","title":"$title"}'
通知渠道对比表
| 渠道类型 | 代表服务 | 推送速度 | 配置难度 | 适用场景 | 免费额度 |
|---|---|---|---|---|---|
| 即时通讯 | 即时通讯应用 | ⭐⭐⭐⭐⭐ | ⭐⭐ | 个人/小团队 | 无限 |
| 企业IM | 钉钉/企业微信 | ⭐⭐⭐⭐ | ⭐⭐⭐ | 企业环境 | 无限 |
| 推送服务 | Bark | ⭐⭐⭐⭐⭐ | ⭐ | iOS用户 | 无限 |
| 推送服务 | Server酱 | ⭐⭐⭐⭐ | ⭐⭐ | 微信用户 | 有限 |
| 邮件 | SMTP | ⭐⭐⭐ | ⭐⭐⭐ | 正式通知 | 无限 |
| 自定义 | Webhook | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 系统集成 | 无限 |
实战:在脚本中使用通知功能
基础通知调用
在Shell脚本中发送通知:
#!/bin/bash
# 任务逻辑
echo "开始执行数据备份任务..."
# 你的任务代码
if [ $? -eq 0 ]; then
# 成功通知
echo "任务执行成功" > /tmp/result.txt
else
# 失败通知
echo "任务执行失败,错误码: $?" > /tmp/result.txt
fi
# 发送通知
curl -s "http://127.0.0.1:5700/api/system/notify?title=备份任务&content=$(cat /tmp/result.txt)"
Python脚本中的通知集成
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import requests
import subprocess
import json
def send_qinglong_notify(title, content):
"""发送青龙通知"""
try:
url = "http://127.0.0.1:5700/api/system/notify"
params = {
"title": title,
"content": content
}
response = requests.get(url, params=params)
return response.status_code == 200
except Exception as e:
print(f"发送通知失败: {e}")
return False
def main():
try:
# 执行你的任务
result = subprocess.run(["your", "command"],
capture_output=True, text=True, timeout=300)
if result.returncode == 0:
# 任务成功
send_qinglong_notify(
"任务执行成功",
f"任务完成\n输出:\n{result.stdout}"
)
else:
# 任务失败
send_qinglong_notify(
"任务执行失败",
f"错误码: {result.returncode}\n错误输出:\n{result.stderr}"
)
except subprocess.TimeoutExpired:
send_qinglong_notify("任务执行超时", "任务超过5分钟未完成")
except Exception as e:
send_qinglong_notify("任务执行异常", f"发生异常: {str(e)}")
if __name__ == "__main__":
main()
JavaScript/Typescript通知示例
// notify.ts
import axios from 'axios';
export interface NotifyParams {
title: string;
content: string;
type?: string; // 可选:指定通知渠道类型
}
export async function sendNotification(params: NotifyParams): Promise<boolean> {
try {
const response = await axios.get('http://127.0.0.1:5700/api/system/notify', {
params
});
return response.status === 200;
} catch (error) {
console.error('发送通知失败:', error);
return false;
}
}
// 使用示例
async function runTask() {
try {
// 执行你的任务
const result = await someAsyncTask();
await sendNotification({
title: '任务执行成功',
content: `任务完成时间: ${new Date().toLocaleString()}\n结果: ${JSON.stringify(result)}`
});
} catch (error) {
await sendNotification({
title: '任务执行失败',
content: `错误信息: ${error.message}\n时间: ${new Date().toLocaleString()}`
});
}
}
高级配置技巧
多渠道同时通知
qinglong支持配置多个通知渠道,消息会同时发送到所有已配置的渠道:
- 在环境变量中配置多个渠道参数
- 系统会自动选择所有已配置的渠道
- 支持故障转移,一个渠道失败不影响其他渠道
自定义通知模板
通过Webhook可以实现自定义通知模板:
# 自定义JSON格式通知
export WEBHOOK_URL="https://your-api.com/notify"
export WEBHOOK_METHOD="POST"
export WEBHOOK_HEADERS='{"Content-Type":"application/json"}'
export WEBHOOK_BODY='{
"platform": "qinglong",
"level": "info",
"title": "$title",
"message": "$content",
"timestamp": "$(date +%s)",
"task_id": "$(echo $QL_TASK_ID)"
}'
条件通知配置
在脚本中实现条件通知逻辑:
#!/bin/bash
# 获取任务ID(青龙内置变量)
TASK_ID=$QL_TASK_ID
# 执行任务
LOG_FILE="/tmp/task_${TASK_ID}.log"
your_command > $LOG_FILE 2>&1
EXIT_CODE=$?
# 根据退出码决定通知级别
if [ $EXIT_CODE -eq 0 ]; then
TITLE="✅ 任务成功 - TASK_${TASK_ID}"
LEVEL="success"
elif [ $EXIT_CODE -eq 1 ]; then
TITLE="⚠️ 任务警告 - TASK_${TASK_ID}"
LEVEL="warning"
else
TITLE="❌ 任务失败 - TASK_${TASK_ID}"
LEVEL="error"
fi
# 发送通知
CONTENT=$(cat $LOG_FILE | tail -20) # 只发送最后20行日志
curl -s "http://127.0.0.1:5700/api/system/notify?title=$TITLE&content=$CONTENT"
故障排除指南
常见问题及解决方案
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 收不到通知 | 渠道配置错误 | 检查环境变量名称和值是否正确 |
| 通知延迟 | 网络问题 | 检查网络连接,考虑使用国内渠道 |
| 部分渠道失败 | 渠道服务异常 | 启用多渠道配置,实现故障转移 |
| 内容截断 | 消息长度限制 | 精简通知内容,重要信息前置 |
调试技巧
-
检查环境变量
# 查看所有通知相关环境变量 env | grep -E '(BARK|IM|DD|QYWX|PUSH|SMTP|WEBHOOK)' -
测试通知功能
# 直接调用通知API测试 curl "http://127.0.0.1:5700/api/system/notify?title=测试通知&content=这是一条测试消息" -
查看通知日志
# 查看青龙日志中的通知记录 docker logs qinglong 2>&1 | grep -i notify
最佳实践建议
1. 多渠道冗余配置
建议至少配置2-3个不同渠道,确保通知的可靠性:
- 主渠道:即时通讯应用或钉钉(实时性强)
- 备用渠道:邮件或Webhook(作为备份)
- 紧急渠道:Bark或Server酱(移动端提醒)
2. 通知内容优化
- 标题明确:包含任务名称和执行结果
- 内容精简:只包含关键信息,避免过长
- 格式统一:使用emoji和固定格式提升可读性
3. 安全考虑
- 敏感信息不要通过通知发送
- Webhook使用HTTPS加密
- 定期更换Token和密钥
4. 性能优化
- 高频任务避免频繁发送通知
- 使用批量通知或摘要通知
- 重要任务才配置通知
总结
qinglong的通知系统提供了极其丰富的渠道选择和灵活的配置方式,从传统的邮件到现代的即时通讯,从国内的钉钉到国际的即时通讯应用,几乎覆盖了所有可能的通知场景。通过合理的配置和使用,你可以:
- 实时掌握任务状态:不再需要手动查看日志
- 快速响应异常:及时处理任务失败情况
- 提高运维效率:自动化监控和告警
- 多端同步通知:无论在哪里都能收到提醒
建议根据实际需求选择2-3个主力通知渠道进行配置,并定期测试通知功能的可靠性。这样就能充分发挥qinglong定时任务管理的优势,真正实现智能化的运维监控。
现在就开始配置你的qinglong通知系统吧,让定时任务管理变得更加轻松高效!
登录后查看全文
热门项目推荐
相关项目推荐
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin08
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00
热门内容推荐
最新内容推荐
项目优选
收起
deepin linux kernel
C
27
11
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
528
3.73 K
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
336
172
Ascend Extension for PyTorch
Python
337
401
React Native鸿蒙化仓库
JavaScript
302
353
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
883
590
暂无简介
Dart
768
191
华为昇腾面向大规模分布式训练的多模态大模型套件,支撑多模态生成、多模态理解。
Python
114
139
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
12
1
openJiuwen agent-studio提供零码、低码可视化开发和工作流编排,模型、知识库、插件等各资源管理能力
TSX
986
246