HangFire的拓展和使用 看了很多博客,小白第一次写博客. 最近由于之前的任务调度框架总出现问题,因此想寻找一个替代品,之前使用的是Quartz.Net,这个框架方便之处就是支持cron表达式适合复杂日期场景使用,以及秒级任务.但是配置比较复杂,而且管理不方便,自己开发了个web管理页面,不过这个需要额外的单独线程去统一管理工作状态,很容易出现问题. 有考虑过 “FluentScheduler” ,使用简单,但是管理配置也很麻烦,我希望能做到配置简单,管理方便,高性能.最后想到了以前听过的h…
今天无意中发现了一个很好用的任务调度框架.Hangfire作为一款高人气且容易上手的分布式后台执行服务,支持多种数据库.在 .net core的环境中,由Core自带的DI管理着生命周期. 相较于quartz.net相比,最大的优点是有个自带的监控界面,比较方便.最新版已经支持秒级任务. 官网地址:https://www.hangfire.io/ 基于队列的任务处理(Fire-and-forget jobs) 基于队列的任务处理是Hangfire中最常用的,客户端使用BackgroundJob类…
任务调度是我们项目中常见的功能,虽然任务调度的功能实现本身并不难,但一个好用的轮子还是可以给我们的开发的效率提升不少的. 在.net环境中,较为有名的任务调度框架是HangFire与Quartz.NET,本文这里主要介绍Hangfire,相比Quartz.NET来说,它提供了更加友好的页面,使用起来更加方便.Hangfire的优点网上有不少文章介绍的,这里简单的列举一下: 支持各种常见的任务类型 持久化保存任务.队列.统计信息 重试机制 多语言支持 支持任务取消 支持按指定Job Queue处理…
NET Core第三方开源Web框架YOYOFx   YOYOFx框架 YOYOFx是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台. 本着学习的态度,造了这个轮子,也是为了更好的了解各个框架的原理和有点,还希望可以和大家多交流 . GitHub:https://github.com/maxzhang1985/YOYOFx YOYOFx是支持Owin协议的MVC框架,基于NETStandard1.6和NET451编译,完美支持在Core和full fram…
在.NET Framework下有许多ORM框架,最著名的无外乎是Entity Framework,它拥有悠久的历史以及便捷的语法,在占有率上一路领先.但随着Dapper的出现,它的地位受到了威胁,本文对比了在.NET Core下 两种框架的表现以及与原生的ADO.NET 的对比. 1. Net Core下多种ORM框架特性及性能对比 1.1. Dapper是什么 1.2. 为什么选择Dapper 1.2.1. Dapper和Entity Framework Core的比较 1.3. 总结 1.…
通过源码分析Java开源任务调度框架Quartz的主要流程 从使用效果.调用链路跟踪.E-R图.循环调度逻辑几个方面分析Quartz. github项目地址: https://github.com/tanliwei/spring-quartz-cluster-sample , 补充了SQL输出 系统说明: IDE: IntelliJ JDK:1.8 Quartz:2.2.1 使用效果 1.从github项目https://github.com/tanliwei/spring-quartz-clu…
什么是Hangfire Hangfire 是一个开源的.NET任务调度框架,目前1.6+版本已支持.NET Core.内置提供集成化的控制台,方便后台查看及监控: 另外,Hangfire包含三大核心组件:客户端.持久化存储.服务端,官方的流程介绍图如下: 从图中可以看出,这三个核心组件是可以分离出来单独部署的,例如可以部署多台Hangfire服务,提高处理后台任务的吞吐量.关于任务持久化存储,支持Sqlserver,MongoDb,Mysql或是Redis等等.…
YOYOFx框架 YOYOFx是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台. 本着学习的态度,造了这个轮子,也是为了更好的了解各个框架的原理和有点,还希望可以和大家多交流 . GitHub:https://github.com/maxzhang1985/YOYOFx YOYOFx是支持Owin协议的MVC框架,基于NETStandard1.6和NET451编译,完美支持在Core和full framework(如.net framework 4.5x或…
相互学习提升,有不足之处请指教!有需要急速开发的朋友可以拿来用哦! SkyMallCore 该项目目前放在github上,功能仍在完善,已Fork的园友已给了一些建议, 我会继续完善,并将开发过程遇到的.Net Core知识点逐步总结出来,该系统稍后再公开!!! 1:该项目是由NFine开源项目转化而来 2:该项目基本框架开发平台是在Asp.net Core 2.0基础上编写3:旨在促进.Net Core跨平台学习交流,提高开发效率4:.Net Core Mvc + EFCore 等技术,该项目…
背景 分布式任务调度是非常常见的一种应用场景,一般对可用性和性能要求不高的任务,采用单点即可,例如linux的crontab,spring的quarz,但是如果要求部署多个节点,达到高可用的效果,上面的方案就不适用了. 实际上任务调度的实现有两种情况,第一种是通过mq来实现,mq做好了数据切分,负载均衡的效果,本文说的是另一种情况. 要求 一.不重复 如果只达到这个要求,有很多方法,假设任务处理的是一张表中的数据,那可以根据某个字段取模达到不重复的效果. 二.不遗漏 如果用上面的方案解决了重复的…