# 分布式任务调度服务 **Repository Path**: starry123/handfire-service ## Basic Information - **Project Name**: 分布式任务调度服务 - **Description**: 一个基于 Hangfire 的分布式任务调度服务,主要用于实现后台作业的可靠执行与管理。通过集成邮件通知功能,可实现任务失败时的及时告警。 - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-13 - **Last Updated**: 2025-08-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: Csharp, Cs, Job, 任务, 定时任务 ## README # HandfireService ## 介绍 HandfireService 是一个基于 Hangfire 的分布式任务调度服务,主要用于实现后台作业的可靠执行与管理。通过集成邮件通知功能,可实现任务失败时的及时告警。 项目参考了 [Hangfire.HttpJob](https://github.com/yuzd/Hangfire.HttpJob) 的设计思路,适用于需要定时执行任务、异步处理业务逻辑的场景。 ## 软件架构 本项目基于 .NET 6 构建,使用 Hangfire 作为核心任务调度框架,并结合以下关键组件: - **EmailFailureAttribute**:任务失败时触发邮件通知的过滤器。 - **EmailService**:封装 SMTP 邮件发送逻辑,供任务失败通知使用。 - **Dockerfile**:支持容器化部署,便于在 Docker 环境中运行服务。 ## 安装教程 ### 1、Docker部署 方式1、直接复制代码 控制台运行 ``` docker run --name ruovea-handfire-container -p 8051:80 ^ -e "HangfireSettings:ConnectionString=DataSource=/handfire.db" ^ -e "HangfireSettings:StartUpPath=job" ^ -e "HangfireSettings:Login=admin" ^ -e "HangfireSettings:PasswordClear=admin" ^ -e TZ=UTC ^ -e TZ=Asia/Shanghai ^ --restart=always ^ crpi-ued86xnwae548w9p.cn-shenzhen.personal.cr.aliyuncs.com/ruovea/ruovea-handfire-img:latest ``` ### 2、IIS 部署 1. **准备环境** 确保服务器已安装 **.NET 6.0 运行时** 和 **IIS**。 2. **部署项目** 将 handfire 项目文件上传到 IIS 服务器,并创建新的网站。 3. **配置站点** 设置站点绑定和应用程序池,确保项目能够正常运行。 4. **启动服务** 启动 IIS 网站,并通过浏览器访问以验证部署是否成功。 文档地址:https://github.com/yuzd/Hangfire.HttpJob ## 使用说明 1. 启动服务后,访问 `/job` 查看任务调度面板(需配置认证)。 2. 配置邮件服务器参数(SMTP 地址、端口、账号密码)以启用失败通知功能。 3. 在 `appsettings.json` 中配置数据库连接、日志等信息。 ## 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request ## 许可证 本项目采用 MIT 许可证,请参阅 [LICENSE](LICENSE) 文件获取详细信息。