一个基于.Net 5开发的轻量级Quartz配置中心 - QuartzCore.Blazor

2022-12-07 13:33:02 浏览数 (1)

以下文章来源于Dotnet9 ,作者SmartforXiaoYuan

项目简介

QuartzCore.Blazor 是一个基于 .Net5 开发的轻量级 Quartz 作业配置中心,实践应用 Ant Design Blazor 和 FreeSql 两个技术, 对这两个技术感兴趣的小伙伴可以加我一起学习讨论哦,对有 Quartz 有需求的小伙伴亦可以开箱即用Code First

  1. 部署简单,支持 Docker 部署。
  2. 支持定时 Http Web API 调用(推荐),亦支持本程序集直接调用。
  3. 方便统计接入应用和任务项。
  4. Blazor WASM 模式,使用了 Ant Design Blazor。
  5. 支持随时修改 Trigger ,启动立刻生效,无需重启应用。
  6. 使用 FreeSql 作为数据库访问组件,亦可学习交流。

原项目地址:https://github.com/SmartforXiaoYuan/QuartzCore.Blazor。

仓库详情

点击在线展示 (Blazor WASM 首次加载会慢一些)

首页监控

首页图表

应用列表

应用新增

任务作业列表

任务作业新增

功能:

  • 实时时间区间执行统计
  • 应用管理
  • 作业管理
  • 执行日志
  • 提供Cron表达式验证

框架技术栈

框架技术栈

分层介绍

上述的思维导图层次也很清晰,整体上是前后分离2层 Share DTO层。

  • QuartzCore.Blazor.Client 是单独的前端(类似 Vue,编译生成是静态文件)。

项目文件

编译生成

  • QuartzCore.Blazor.Share

Share

  • QuartzCore.Blazor.ServerAPI层)正好也是10层,哈哈

API

API 层用到的知识点应该大家都知道,这也不展开说了,就说一下为什么把 QuartzCore.Tasks 类库独立出来,不放在service层中:

  1. 主要的原因是反射的 Job 注入的生命周期和 Service 生命周期不一致,会报错 ;

QuartzCore.MongoDB 层主要渲染首页图表的数据,appsettings 中亦可以设置是否使用MongoDB, 不使用则渲染图表数据。本项目 MongoDB 组件可选。

结尾:

本项目的初衷主要是为了实践 BlazorFreeSql两个技术, 最后出来的成果(本项目)能分享给大家,作者是很开心的,感觉到了满满的成就感。

如果你对 Blazor 感兴趣,可以关注下 Ant Design Blazor。

如果你对 FreeSql 感兴趣,也可以关注下 FreeSql。

如果有人用到qz定时作业,也可以直接用本项目,我也很开心,欢迎大家提issues。

初识 Blazor 到实践,Blazor 类似于 Vue Cli, 官网说的也很简单,用 C# 代替 js 在前端的交互(也不全然,应是在能使用js的地方,尽量能使用C#)。

Blazor 同样也是前后端分离,使用 HttpClient 调用 Web API,本项目为了方便部署就建了同一个 Host,只需要在 Startup 中指定 Endpoints

目前 WASMBlazor性能还有很大提升空间。

大家可以多关注 Blazor 以及 Ant Design Blazor,Ant Design Blazor 还在起步阶段,还有很大的提升空间。

最后对 Blazor 感兴趣的小伙伴可以关注下 Ant Design Blazor 和 Bootstrap Blazor, 目前觉得Bootstrap Blazor库稍微全一点。

0 人点赞