BCVP开发者说第5期:QuartzCore.Blazor

沉静岁月,淡忘流年

1

项目简介

QuartzCore.Blazor


    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

作者博客:
https://www.jianshu.com/u/c90d7487710d

 

2

框架功能

 

在线项目演示:

http://49.232.221.48:5001

(blazor wasm 首次加载会慢一些)



账号:无

密码:无

 

(首页监控)

(首页图表)

(任务作业列表)

(任务作业新增)


核心功能
  1、实时时间区间执行统计

  2、应用管理

  3、健康检查
  4、作业管理

  5、执行日志

  6、参数管理
  7、提供Cron表达式验证

  8、其他

3

框架技术栈

(系统所用到的技术栈)

数据库

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

初始化数据库

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

Mongo

注:master分支默认有Mongo组件,运行时需要配置mongo地址,若不需要使用mongo,可以选择no_mongo分支直接部署运行即可;Mongo数据主要用于首页实时图表数据展示。

运行服务端

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 (本例子使用no_mongo分支构建)

4

分层介绍

    

分层介绍

上述的思维导图层次也很清晰,整体上是前后分离2层+share dto层

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

 

(项目文件)

(生成的静态文件)

  • QuartzCore.Blazor.Share

(项目文件)

  • QuartzCore.Blazor.Server(api层)

(项目文件)

Quartz使用场景

  • redis缓存预热

  • 业务补偿机制

  • 数据同步

新增任务项

  1. Http WebApi调用方式比较独立,只需要配置api地址支持GET和POST,无需重新部署平台

  2. 程序集调用,需要继承JobBase,方便记录日志,需求重新部署平台 注释:报警邮箱是预留的字段,由于没有公共的邮箱服务器,而且也没必要这边先预留,小伙伴若有需求可自己添加上逻辑


基于Net/Core,快速搭建 API & SPA 及微服务应用组织

BASE NETCORE (VUE) PROJECT TEAM

每一个.NET开发者都可以通过自己的开源项目(最好可以配套简单发表些文章)在这里进行分享,BCVP开发者组织的意义就是激发和挖掘更多的作品,可能偏基础,但是都会有价值。目的就是希望:每个人能将从社区学到的知识,进行自己消化和总结,浓缩成一个个独立的项目,接着投入到社区,最后让更多的初学者去了解、去学习、去思想碰撞,从而达到学习来源于社区,最后反哺于社区的良好循环目的,我们都是学生,也都是下一批初学者的老师,这才应该是一个社区正向推动的方法。

地址:
https://github.com/BaseCoreVueProject

可以在Home仓库里,查看具体的流程说明,只要你愿意分享,就来吧。

加入我们

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/306242.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql update返回_MySQL中,当update修改数据与原数据相同时会再次执行吗?

本文同步Java知音社区,专注于Java作者:powdbahttps://yq.aliyun.com/articles/694162一、背景本文主要测试MySQL执行update语句时,针对与原数据(即未修改)相同的update语句会在MySQL内部重新执行吗?二、测试…

.NET 云原生架构师训练营(模块二 基础巩固 日志)--学习笔记

2.2.2 核心模块--日志ILogger 的使用日志的 ID日志的分类日志的级别LoggerProvider日志的最佳实践.NET Core 和 ASP.NET Core 中的日志记录:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/logging/?viewaspnetcore-5.0ILogger 的使用在 Get 方法中添…

mysql数据库设计三大范式_了解数据库设计三大范式

数据库设计范式什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的的数据库是需要满足一些规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范…

使用BeetleX网关部署第三方Web服务

BeetleX的http/ws网关在早期版本可以启动和管理第三方Web服务进程,在最新的1.5版本中引入了文件管理功能,通过这一功能可以对第三方Web服务进行发布管理。加入文件管理后BeetleX的新版本网关服务可以理解为一个简单化的IIS,但它的不同之处是可…

mysql 错误 0152_SP2-1503 SP2-0152 错误解决

一、现场描述服务器上有Oracle 10g环境变量分别为Oracle 10g环境变量export ORACLE_BASE/opt/oracleexport ORACLE_HOME$ORACLE_BASE/product/10.2.0/db_1export ORACLE_PATH$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/adminexport ORACLE_SIDecpexport NLS_LANGAME…

2020.NET开发者大会大会线上同步直播,以及参会秘籍

2020.NET开发者大会马上就要开幕啦!你都做好参会准备没有?本届峰会线上分享将在思否和CSDN两个媒体平台同步进行,大家可以选择适合自己的方式在线参与互动哦!访问下方链接,可以直接加入直播:思否直播观看地…

mysql数据聚合技术_Mysql 去重 聚合

示例数据表中的数据:mysql> select * from talk_test;-------------------| id | name | mobile |-------------------| 1 | xiao9 | 555555 || 2 | xiao6 | 666666 || 3 | xiao9 | 888888 || 4 | xiao9 | 555555 || 5 | xiao6 | 777777 |----------------…

C# 9.0中引入的新特性init和record的使用思考

.NET 5.0已经发布,C# 9.0也为我们带来了许多新特性,其中最让我印象深刻的就是init和record type,很多文章已经把这两个新特性讨论的差不多了,本文不再详细讨论,而是通过使用角度来思考这两个特性。initinit是C# 9.0中引…

使用 .NET Core 中的 EventCounters 衡量性能

背景对于每隔几毫秒发生的事件,最好使每个事件的开销较低(小于一毫秒)。 否则,对性能的影响将很大。 记录事件意味着你将向磁盘写入内容。 如果磁盘不够快,你将丢失事件。 你需要一个解决方案,而不是记录事…

mysql100链接同时处理_php 连接MYSQL 两个同时连接为什么只有一个连接成功,必须删掉一个,另外一个才查询生效出结果,下附代码...

include("config.php");header("Content-Type:text/html;charsetgbk_2312");$connmysql_connect($config_ip,$config_name,$config_pass)ordie("链接错误");mysql_select_db($config...include("config.php");header("Content-Ty…

python 3.9特性_Python 3.9来了!这十个新特性值得关注

选自towardsdatascience作者:Farhad Malik机器之心编译编辑:陈萍近日,Python 3.9 发布,并开发了一些新特性,包括字典合并与更新、新的解析器、新的字符串函数等。Python 3.9 已于 10 月 5 日发布,新版本的特…

基于 C# 的 ETL 大数据并行编程

作者:James Spinella译者:精致码农原文:https://bit.ly/3nGQu4J并行编程在历史上一直是软件开发中比较小众和复杂的环节,往往不值得头疼。但编写并行化应用只会越来越简单,一个应用同时利用设备 CPU 上的多个内核&…

python购物车典例_Python入门:购物车实例

product_list[(iphone,5800),(pro,120000),(python book,120),(Bike,800),(coffe,39)] #定义商品列表shopping_list[] #定义购物车salaryinput("your sally:") #输入薪水if salary.isdigit(): #判断是否为数字salaryint(salary)while True:for index,item in enumera…

一个小技巧助您减少if语句的状态判断

在进行项目的开发的过程中, if 语句是少不了的,但我们始终要有一颗消灭 if / else 语句的心。为了消灭if / else 我们引入了 短路器 的概念。短路器 有时候的确能精简我们的代码,但还不够,因此我参考了一个方法来继续消灭一部分 断…

抢先看:笔者亲历的2020年中国.NET开发者大会活动纪实

编者:2020年中国.NET开发者大会第一天活动已经结束,可以通过https://codechina.csdn.net/lives 会看。第二天的Workshop 也有直播哦。12020年12月19日的苏州工业园区,天公作美,阳光明媚,气象迷人,正是一个搞…

python魔术方法由谁定义_Python的魔术方法

魔术方法就是在定义的类中定义一些”不一般”的方法,使类的使用更方便、完善、健壮,是python特有的方法,一般都是前后包含两个下划线__的方法称为魔术方法,例如__new__。基本魔术方法有哪些__new__:是在一个对象实例化…

Swagger在header中添加token

概述平常做项目使用mvcwebapi,采取前后端分离的方式,后台提供API接口给前端开发人员。这个过程中遇到一个问题后台开发人员怎么提供接口说明文档给前端开发人员。为了解决这个问题,项目中引用swagger(我比较喜欢戏称为“丝袜哥”&…

mysql中有没有单行函数_MySQL之函数(单行函数、分组函数)

##进阶函数/*调用语法:select函数名(实参列表);分组函数和单行函数的区别:单行函数:将一个数据进行处理,返回一个值分组函数:将虚拟表看做一个组,处理一组数据,返回一个值常见的分组…

如何在 C# 中使用 数据注解

数据注解 是一种可以应用到 类 或者 类成员上用来指定类之间关系的一种 Attribute,它的应用场景比较多,可用来描述 UI 上如何进行数据展示,还可以用来做类属性的规则验证,这篇文章就来讨论为什么 注解 值得你去学习,以…

mysql判断是否在日期区间_通过sql判断时间区间是否存在数据

在做项目的时候遇到过一个问题,用户需要获取当前月或者几个月的数据,但是有一个要求,如果已经存在一张单已经包含了这几个月的数据,那么就不能再提取到重复的数据。其实这个问题,我做完了我的方式之后才发现&#xff0…