以下文章来源于Dotnet9 ,作者SmartforXiaoYuan
项目简介
QuartzCore.Blazor 是一个基于 .Net5 开发的轻量级 Quartz 作业配置中心,实践应用 Ant Design Blazor 和 FreeSql 两个技术, 对这两个技术感兴趣的小伙伴可以加我一起学习讨论哦,对有 Quartz 有需求的小伙伴亦可以开箱即用Code First
。
- 部署简单,支持
Docker
部署。 - 支持定时
Http Web API
调用(推荐),亦支持本程序集直接调用。 - 方便统计接入应用和任务项。
Blazor WASM
模式,使用了 Ant Design Blazor。- 支持随时修改
Trigger
,启动立刻生效,无需重启应用。 - 使用 FreeSql 作为数据库访问组件,亦可学习交流。
原项目地址:https://github.com/SmartforXiaoYuan/QuartzCore.Blazor。
仓库详情
点击在线展示 (Blazor WASM
首次加载会慢一些)
首页监控
首页图表
应用列表
应用新增
任务作业列表
任务作业新增
功能:
- 实时时间区间执行统计
- 应用管理
- 作业管理
- 执行日志
- 提供Cron表达式验证
框架技术栈
框架技术栈
分层介绍
上述的思维导图层次也很清晰,整体上是前后分离2层 Share DTO
层。
QuartzCore.Blazor.Client
是单独的前端(类似Vue
,编译生成是静态文件)。
项目文件
编译生成
QuartzCore.Blazor.Share
Share
QuartzCore.Blazor.Server
(API
层)正好也是10层,哈哈
API
API
层用到的知识点应该大家都知道,这也不展开说了,就说一下为什么把 QuartzCore.Tasks
类库独立出来,不放在service层中:
- 主要的原因是反射的
Job
注入的生命周期和Service
生命周期不一致,会报错 ;
QuartzCore.MongoDB
层主要渲染首页图表的数据,appsettings
中亦可以设置是否使用MongoDB
, 不使用则渲染图表数据。本项目 MongoDB
组件可选。
结尾:
本项目的初衷主要是为了实践 Blazor
和 FreeSql
两个技术, 最后出来的成果(本项目)能分享给大家,作者是很开心的,感觉到了满满的成就感。
如果你对 Blazor
感兴趣,可以关注下 Ant Design Blazor。
如果你对 FreeSql
感兴趣,也可以关注下 FreeSql。
如果有人用到qz定时作业,也可以直接用本项目,我也很开心,欢迎大家提issues。
初识 Blazor
到实践,Blazor
类似于 Vue Cli
, 官网说的也很简单,用 C#
代替 js
在前端的交互(也不全然,应是在能使用js
的地方,尽量能使用C#
)。
Blazor
同样也是前后端分离,使用 HttpClient
调用 Web API
,本项目为了方便部署就建了同一个 Host
,只需要在 Startup
中指定 Endpoints
。
目前 WASM
的 Blazor
性能还有很大提升空间。
大家可以多关注 Blazor
以及 Ant Design Blazor,Ant Design Blazor 还在起步阶段,还有很大的提升空间。
最后对 Blazor
感兴趣的小伙伴可以关注下 Ant Design Blazor 和 Bootstrap Blazor, 目前觉得Bootstrap Blazor库稍微全一点。