# RuoVea.QuartzNet.Dashboard **Repository Path**: starry123/ruovea-quartznetui-dashboard ## Basic Information - **Project Name**: RuoVea.QuartzNet.Dashboard - **Description**: QuartzNet Dashboard 是一款基于 QuartzNetUI 组件开发的任务管理界面,专为简化任务调度和管理而设计。通过直观的 Web 界面,用户可以轻松创建、监控和管理周期性任务,查看执行日志,进行作业分析,并配置系统设置。 - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 4 - **Created**: 2023-12-08 - **Last Updated**: 2025-07-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # QuartzNet Dashboard 任务管理界面 ## 📊 详细介绍 **QuartzNet Dashboard** 是一款基于 QuartzNetUI 组件开发的任务管理界面,专为简化任务调度和管理而设计。通过直观的 Web 界面,用户可以轻松创建、监控和管理周期性任务,查看执行日志,进行作业分析,并配置系统设置。 ### **核心功能** - **周期作业管理**:创建、编辑和删除周期性任务,设置任务执行频率和时间。 - **执行日志**:记录任务执行的历史日志,包括执行时间、状态和结果。 - **作业分析**:提供任务执行的统计和分析功能,帮助优化任务调度。 - **系统设置**:灵活配置系统参数,满足个性化需求。 - **多数据库支持**:支持 MySql、SqlServer、PostgreSQL、SQLite、Oracle 等多种数据库。 ### **高效管理体验** QuartzNet Dashboard 提供简洁直观的用户界面和强大的功能模块,帮助用户专注于任务调度和管理,减少操作负担,提升使用体验。 ## 🛠️ 软件架构 **技术栈**:基于 .Net5.0、.Net6.0、.Net7.0、.Net8.0 和 Quartz.AspNetCore 3.7.0 构建,确保软件的高性能和跨平台兼容性。 ### **架构优势** - **跨平台支持**:在多种操作系统上无缝运行。 - **高性能**:优化的代码结构和高效的算法,确保软件在处理大量任务时依然流畅。 - **安全性**:内置的数据加密和访问控制,保护用户数据的隐私和安全。 - **可扩展性**:模块化设计,方便未来功能的扩展和集成。 ## 📥 安装教程 ### **步骤** 1. **下载软件**:从 [Gitee 仓库](https://gitee.com/starry123/ruovea-quartznet-ui.git) 下载最新版本的 QuartzNet Dashboard 源代码。 2. **编译项目**:使用 Visual Studio 或命令行工具编译项目。 3. **配置数据库**:根据指南配置数据库连接,支持 MySql、SqlServer、PostgreSQL、SQLite、Oracle 等。 4. **运行服务**:启动 QuartzNet Dashboard 服务。 5. **访问界面**:通过浏览器访问 `http://localhost:5000/job`。 ## 安装教程 ### 1、Docker部署 方式1、直接复制代码 控制台运行 ```bash docker run --name ruovea-quartznetui-container ^ -p 5057:80 ^ -e "QuartzNetUI:DbType=SQLite" ^ -e "QuartzNetUI:ConnectionString=Data Source=./quartznetui.db" ^ -e "QuartzNetUI:RootUrl=job" ^ -e "QuartzNetUI:IsClustered=false" ^ -e "QuartzNetUI:SchedulerId=RuoVeaSchedulerId-001" ^ -e "QuartzNetUI:ShowMenu=true" ^ -e "QuartzNetUI:LogoUrl=" ^ -e "QuartzNetUI:UiTitle=" ^ -e "QuartzNetUI:UserName=admin" ^ -e "QuartzNetUI:UserPwd=123456" ^ -e "QuartzNetUI:AuthorUrl=job" ^ -e TZ=UTC ^ -e TZ=Asia/Shanghai ^ --restart=always ^ crpi-ued86xnwae548w9p.cn-shenzhen.personal.cr.aliyuncs.com/ruovea/ruovea-quartznetui-img:latest pause ``` 方式2、docker-compose 部署 在文件下中 执行下面命令 ```bash version: '3.9' services: ruovea: image: 'crpi-ued86xnwae548w9p.cn-shenzhen.personal.cr.aliyuncs.com/ruovea/ruovea-quartznetui-img:latest' restart: always environment: - TZ=Asia/Shanghai - TZ=UTC - 'QuartzNetUI:AuthorUrl=job' - 'QuartzNetUI:UserPwd=123456' - 'QuartzNetUI:UserName=admin' - 'QuartzNetUI:UiTitle=' - 'QuartzNetUI:LogoUrl=' - 'QuartzNetUI:ShowMenu=true' - 'QuartzNetUI:SchedulerId=RuoVeaSchedulerId-001' - 'QuartzNetUI:IsClustered=false' - 'QuartzNetUI:RootUrl=job' - 'QuartzNetUI:ConnectionString=Data Source=./quartznetui.db' - 'QuartzNetUI:DbType=SQLite' ports: - '5057:80' container_name: ruovea-quartznetui-container ``` 启动 运行 ```bash docker-compose up -d ``` 其它配置参数 ```basic -e "ConnectionConfigs:0:DbType=Sqlite" ^ -e "ConnectionConfigs:0:ConnectionString=DataSource=/quartznetui.db" ^ -e "ConnectionConfigs:0:EnableUnderLine=true" ^ -e "DataAuditing:CreateTime=CreatedAt" ^ -e "DataAuditing:ModifyTime=UpdatedAt" ^ -e "DataAuditing:Creator=CreatedById" ^ -e "DataAuditing:Modifier=UpdatedById" ^ -e "DataAuditing:TenantId=TenantId" ^ -e "DataAuditing:IsDelete=IsDelete" ^ -e "ExceptionLog:Enabled=true" ^ -e "ExceptionLog:LogToFile=true" ^ -e "ExceptionLog:LogMore=true" ^ -e "RequestLog:Enabled=true" ^ -e "RequestLog:LogToFile=true" ^ -e "RequestLog:LogMore=true" ^ -e "RequestLog:IgnoreApis=" ^ -e TZ=Asia/Shanghai ^ ``` #### 使用说明 1、双击 QuartzNetDashboard.exe 文件 2、浏览器输入地址:http://localhost:5000/job ![](Doc/img/login.png) 3、输入账号密码 admin admin 周期作业 ![周期作业](Doc/img/dashboard.png) 周期作业编辑 ![周期作业编辑](Doc/img/edit.png) ![周期作业编辑](Doc/img/edit2.png) ![周期作业编辑](Doc/img/edit3.png) ![周期作业编辑](Doc/img/edit4.png) 执行日志 ![执行日志](Doc/img/log.png) 作业分析 ![作业分析](Doc/img/period.png) 设置 ![设置](Doc/img/setting.png) Info ![Info](Doc/img/guide.png) ![](Doc/img/dashboard.png)