1 Star 0 Fork 1

流浪 / QuartzCore.Blazor

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

QuartzCore.Blazor

这是一个基于.net5开发的轻量级Quartz配置中心

  1. 部署简单,支持docker部署
  2. 支持定时Http WebApi调用(推荐),亦支持本程序集直接调用
  3. 方便统计接入应用和任务项
  4. Blazor wasm模式,使用了ant-design-blazor UI
  5. 支持随时修改Trigger,启动立刻生效,无需重启应用
  6. 使用Freesql为数据访问组件,亦可学习交流

在线浏览地址:http://49.232.221.48:5001/

给个星星! ⭐️

如果你喜欢这个项目或者它帮助你, 请给 Star~(辛苦星咯)

数据库

使用数据库来存储数据,提供了sqlite和mysql 可以根据用户配置选择,其他数据库亦可支持。使用Freesql为数据访问组件。Freesql对多数据库的支持更加强劲,特别是对国产数据库的支持。但是因为没有国产数据库的测试环境,本项目并未支持,如果有需要我可是开分支尝试支持,但是测试工作就要靠用户啦。

初始化数据库

用户只需要手工建一个空库,所有的表在第一次启动的时候都会自动生成。provider对照: mysql = MySql sqlite = Sqlite

运行服务端

sudo docker run --name qzBlazor -e db:provider=sqlite -e db:conn="Data Source=dev_qzblazor.db" -p 5001:5001 qzblazor/apkimg

注意:qzblazor/apkimg 是我构建的镜像,我未上传仓库 需要docker build

为什么写quartzBlazor

  1. 方便大家能使用,中小公司开箱即用很是方便。(之前也写过vue的版本ScheduleJob.Core

  2. 为了实操Blazor和FreeSql 能和大家一起动手写ant-design-blazor,能够体验一下,让更多人的知道Blazor和FreeSql

为什么 独立QuartzCore.Tasks类库

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

Quartz使用场景

  • redis缓存预热
  • 业务补偿机制
  • 数据同步

应用

01 02

新增任务项

  1. Http WebApi调用方式比较独立,只需要配置api地址支持GET和POST,无需重新部署平台
  2. 程序集调用,需要继承JobBase,方便记录日志,需求重新部署平台 01 02

注释:报警邮箱是预留的字段,由于没有公共的邮箱服务器,而且也没必要这边先预留,小伙伴若有需求可自己添加上逻辑

任务日志

默认只保留每条任务的20条执行记录,亦可根据需要配置

关键问题说明,

_scheduler.ScheduleJob是添加任务,需要等待触发时间才开始执行

暂停调用 _scheduler.PauseJob 那么如果你修改了任务项的信息,那便不会重新添加到_scheduler中去,之前我判断CheckExists 若存在就_scheduler.ResumeJob 执行恢复操作 是不正确的

  1. AddJob 貌似没有重新指定 trigger
  2. 官网的issue中也有发表疑惑(https://github.com/quartznet/quartznet/issues/844)
  3. _scheduler.RescheduleJob 可更新时间表达式、

暂时解决方案:目前先选用PauseJob之后,再去DeleteJob

To Do

SimpleTrigger模式下 WithRepeatCount 若设置了自动退出,目前需要手动更新下TasksQz.IsStart=false

Todo

  • 暂无登陆,初始化管理员密码,第一次运行程序需要初始化管理员密码

  • IDS4

  • 监听任务状态,避免运行状态不统一

  • 可支持手动上传DLL方式,动态加载dll并运行,热插拔(暂缓---个人觉得Job补偿机制webapi模式也够用)

  • ant-design-blazor的RangePicker时间选择器还未完善,无法选择具体的时间。目前只能选择日期

  • 首页图表比较丑,目前还没有适合的,要么组件冲突(因为已经使用ant-design-blazor),有点遗憾

结尾

初认Blazor

其实不然,Blazor类似Vue Cli 官网说明也很简单用C#代替js交互, 一个新的名词wasm。同样也是前后分离。使用HttpClient调用 Web API,本项目为了方便部署就建了同一个Host,只需要再startup中指定Endpoints

目前wasm的Blazor性能还有很大提升空间。大家可以多关注Blazor以及ant-design-blazor

ant-design-blazor还是起步阶段,本次使用体会下来,还有很大的空间需要大家来开发优化,对于初学者来说文档不全,目前来说做需求时候有点吃力,有点不香

最后有兴趣去了解UI的小伙伴可以关注下ant-design-blazor和BootstrapBlazor 目前觉得BootstrapBlazor库稍微全一点

如果你有更好的建议可以提issue或者提交pro 。感谢大家

MIT License Copyright (c) 2020 SmartforXiaoYuan Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

暂无描述 展开 收起
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/LiuKun_Km/QuartzCore.Blazor.git
git@gitee.com:LiuKun_Km/QuartzCore.Blazor.git
LiuKun_Km
QuartzCore.Blazor
QuartzCore.Blazor
master

搜索帮助