4.1 KiB
4.1 KiB
Zeodao任务提醒系统
一个基于Spring Boot的企业微信任务提醒系统,专门用于提醒团队成员及时在禅道系统中刷新任务状态。系统会在工作日的早上9点和下午5:30自动发送提醒消息,帮助团队养成良好的任务状态更新习惯。
功能特性
- ✅ 自动在工作日早上9:00发送禅道任务状态提醒
- ✅ 自动在工作日下午17:30发送任务完成状态提醒
- ✅ 自动排除周末和法定节假日
- ✅ 支持企业微信Webhook消息推送
- ✅ 支持Markdown格式消息,包含操作指引
- ✅ 提供REST API进行手动测试和触发
- ✅ 完整的日志记录和错误处理
- ✅ 可配置的消息内容和时间
技术栈
- Java 21
- Spring Boot 2.7.14
- Maven
- 企业微信Webhook API
快速开始
1. 环境要求
- JDK 21 或更高版本
- Maven 3.6+
2. 配置企业微信Webhook
在 src/main/resources/application.yml 中配置您的企业微信Webhook地址:
wechat:
webhook:
url: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_WEBHOOK_KEY
3. 编译和运行
# 编译项目
mvn clean compile
# 运行项目
mvn spring-boot:run
或者打包后运行:
# 打包
mvn clean package
# 运行jar包
java -jar target/task-reminder-1.0.0.jar
4. 验证系统
系统启动后,可以通过以下API进行测试:
# 健康检查
curl http://localhost:8080/api/reminder/health
# 发送测试消息
curl -X POST http://localhost:8080/api/reminder/test
# 手动触发早上提醒
curl -X POST http://localhost:8080/api/reminder/morning
# 手动触发晚上提醒
curl -X POST http://localhost:8080/api/reminder/evening
# 获取提醒信息
curl http://localhost:8080/api/reminder/info
配置说明
时间配置
在 application.yml 中可以自定义提醒时间:
task:
reminder:
morning:
time: "0 0 9 * * MON-FRI" # Cron表达式:工作日早上9点
message: "早上好!请及时更新您的任务状态,开始新的一天工作!"
evening:
time: "0 30 17 * * MON-FRI" # Cron表达式:工作日下午5:30
message: "下班前提醒:请更新今日任务完成状态,为明天做好准备!"
节假日配置
系统内置了2024年和2025年的法定节假日,可以在 HolidayUtil.java 中修改或添加自定义节假日。
API文档
健康检查
- URL:
GET /api/reminder/health - 描述: 检查系统运行状态
发送测试消息
- URL:
POST /api/reminder/test - 描述: 发送一条测试消息到企业微信群
手动触发早上提醒
- URL:
POST /api/reminder/morning - 描述: 手动触发早上任务提醒
手动触发晚上提醒
- URL:
POST /api/reminder/evening - 描述: 手动触发晚上任务提醒
获取提醒信息
- URL:
GET /api/reminder/info - 描述: 获取下次提醒时间和系统状态信息
日志
系统会在 logs/task-reminder.log 文件中记录详细的运行日志,包括:
- 定时任务执行记录
- 消息发送状态
- 错误信息
- 系统健康检查
部署建议
生产环境部署
- 修改
application.yml中的日志级别为INFO - 配置合适的JVM参数
- 使用systemd或其他进程管理工具管理应用
- 配置日志轮转策略
Docker部署
可以创建Dockerfile进行容器化部署:
FROM openjdk:21-jre-slim
COPY target/task-reminder-1.0.0.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]
故障排除
常见问题
-
消息发送失败
- 检查企业微信Webhook地址是否正确
- 检查网络连接是否正常
- 查看日志文件中的错误信息
-
定时任务不执行
- 检查Cron表达式是否正确
- 确认当前时间是否为工作日
- 查看系统日志确认定时任务是否启动
-
节假日判断错误
- 检查
HolidayUtil.java中的节假日配置 - 确认系统时间是否正确
- 检查
贡献
欢迎提交Issue和Pull Request来改进这个项目。
许可证
MIT License
联系方式
如有问题,请联系开发团队。