7 balalalalalala

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 131w+

ScheduleMaster新特性之延时任务初体验

ScheduleMaster在上个月底更新到了2.0版本,在功能和代码以及文档上都往前跨了很大一步,详细信息可以参考这篇文章:https://www.cnblogs.com/hohoa/p/12772945.html对ScheduleMaster还不熟悉的朋友可以先移步作者的系列文章:https://www.cnblogs.com/hohoa/category/1628282.html...

2020-05-18 21:16:00

.NET Core下的开源分布式任务调度系统ScheduleMaster-v2.0低调发布

从1月份首次公开介绍这个项目到现在也快4个月了,期间做了一些修修补补整体没什么大的改动。2.0算是发布之后第一个大的版本更新,带来了许多新功能新特性,也修复了一些已知的bug,在此感谢在博客、Issue和QQ群中提出各种意见的朋友,以及指导过我的前辈大佬们。在我看来,这个项目没有使用任何高深的技术和架构,甚至有些代码写的自己都不满意不敢拿出来给大家观赏,和社区中其他一些开源项目的大佬们...

2020-04-26 21:56:00

[一起读源码]走进C#并发队列ConcurrentQueue的内部世界 — .NET Core篇

在上一篇《走进C#并发队列ConcurrentQueue的内部世界》中解析了Framework下的ConcurrentQueue实现原理,经过抛砖引玉,得到了一众大佬的指点,找到了.NET Core版本下的ConcurrentQueue源码,位于以下地址:https://github.com/dotnet/runtime/blob/master/src/libraries/Syste...

2020-04-19 20:27:00

[一起读源码]走进C#并发队列ConcurrentQueue的内部世界

决定从这篇文章开始,开一个读源码系列,不限制平台语言或工具,任何自己感兴趣的都会写。前几天碰到一个小问题又读了一遍ConcurrentQueue的源码,那就拿C#中比较常用的并发队列ConcurrentQueue作为开篇来聊一聊它的实现原理。话不多说,直奔主题。要提前说明下的是,本文解析的源码是基于.NET Framework 4.8版本,地址是:https://reference...

2020-04-07 09:02:00

.NET Core下的开源分布式任务调度平台ScheduleMaster—快速上手

概述ScheduleMaster是一个开源的分布式任务调度系统,它基于Asp.Net Core平台构建,支持跨平台多节点部署运行。它的项目主页在这里:https://github.com/hey-hoho/ScheduleMasterCore关于它的简单介绍可以看这里:https://www.cnblogs.com/hohoa/p/12162581.html本地部署...

2020-01-15 17:06:00

.NET Core下的开源分布式任务调度平台ScheduleMaster-我的首个开源项目

从何说起2017年初的时候,由于当时项目需要做了一个乞丐版定时调度系统,那时候只在单机上实现了核心的调度功能。做这个玩意之前也调研了社区中开源的解决方案,找了几个实地部署试跑了一下,其实都很不错。但那时候我们有个问题就是应用都是基于Azure WebApp去部署,不太想为了这个东西搞一台虚拟机来跑windows服务,所以最后决定重新开发一个,哪怕功能简单点能满足需要就行。很快这个东西...

2020-01-09 16:30:00

在C#中使用二叉树实时计算海量用户积分排名的实现

从何说起前些天和朋友讨论一个问题,他们的应用有几十万会员然后对应有积分,现在想做积分排名的需求,问有没有什么好方案。这个问题也算常见,很多地方都能看到,常规做法一般是数据定时跑批把计算结果到中间表然后直接查表就行,或者只显示个TOP N的排行榜,名次高的计算真实名次,名次比较低的直接显示在xxx名开外这种。但是出于探索问题的角度,我还是想找一下有没有实时计算的办法,并且效率能够接受。...

2020-01-06 08:50:00

在Asp.Net Core中使用ModelConvention实现全局过滤器隔离

从何说起这来自于我把项目迁移到Asp.Net Core的过程中碰到一个问题。在一个web程序中同时包含了MVC和WebAPI,现在需要给WebAPI部分单独添加一个接口验证过滤器IActionFilter,常规做法一般是写好过滤器后给需要的控制器挂上这个标签,高级点的做法是注册一个全局过滤器,这样可以避免每次手动添加同时代码也更好管理。注册全局过滤器的方式为: services.Ad...

2020-01-02 20:00:00

从EFCore上下文的使用到深入剖析DI的生命周期最后实现自动属性注入

故事背景
最近在把自己的一个老项目从Framework迁移到.Net Core 3.0,数据访问这块选择的是EFCore+Mysql。使用EF的话不可避免要和DbContext打交道,在Core中的常规用法一般是:创建一个XXXContext类继承自DbContext,实现一个拥有DbContextOptions参数的构造器,在启动类StartUp中的ConfigureServ...

2019-11-18 20:24:00

【实践总结】给Centos和Ubuntu设置静态网络IP以及配置ssh功能

作为一名以Windows平台为主的开发者,在接触和使用Linux系统的过程中总会遇到一系列的问题。每当这时候,我相信大部分人是和我一样的处理办法,就是网上各种搜索尝试直到问题解决为止,而有些问题,前后不止会遇到一次 ,每次遇到每次搜索。因为在Linux上基本都是使用命令行操作,各种命令、工具、配置、路径等等不可能完全记得住,借助搜索引擎也是可以理解,但是网上的东西杂乱无章,开放性的问题(...

2019-08-25 22:56:00

【工具篇】在.Net中实现HTML生成图片或PDF的几种方式

前段时间由于项目上的需求,要在.Net平台下实现把HTML内容生成图片或PDF文件的功能,特意在网上研究了几种方案,这里记录一下以备日后再次使用。当时想着找一种开发部署都比较清爽并且运行稳定的方案,但实际上两者同时满足基本不可能,只能做一个自己觉得合适的取舍,下面从两个维度(清爽指数和功能指数)逐一对比。
 


 1.WebBrows...

2019-06-25 23:11:00

.NetCore&Linux&Docker&Portainer踩坑历险记

最近有一个云服务器和数据库的迁移任务,踩坑爬坑无数次,觉得必须要记录一下。大家瓜子花生准备好,听我慢慢讲故事#手动笑哭#。

故事背景
公司是做电商业务的,在天猫有几家旗舰店数据量也很大。阿里有一个称为聚石塔的平台,专门给这些ISV提供各种云资源,强制绑定了一些业务,原本我们在聚石塔中有一台ECS和一台RDS部署在华东杭州节点,本月初突然收到阿里的邮件说是...

2019-04-21 23:38:00

采用简易的环形延时队列处理秒级定时任务的解决方案

业务背景
在稍微复杂点业务系统中,不可避免会碰到做定时任务的需求,比如淘宝的交易超时自动关闭订单、超时自动确认收货等等。对于一些定时作业比较多的系统,通常都会搭建专门的调度平台来管理,通过创建定时器来周期性执行任务。如刚才所说的场景,我们可以给订单创建一个专门的任务来处理交易状态,每秒轮询一次订单表,找出那些符合超时条件的订单然后标记状态。这是最简单粗暴的做法,但明显也很lo...

2017-10-29 16:00:00

分布式web架构中对session同步的常用处理方法以及优缺点

写在前面
最近在读一本来自淘宝技术团队大牛的书,名字叫《大型网站系统与Java中间件实践》。开篇的章节详细地介绍了一个网站架构由小变大不断演进的过程,其中从单机架构升级到集群架构的过程中着重介绍了关于session同步问题, 这也是很多人在聊到分布式时绕不过去的话题。下面就整理下书中的内容,也算是做个读书笔记,方便以后参考。
 问题从哪来

&#1...

2017-08-06 10:10:00

【小试插件开发】给Visual Studio装上自己定制的功能来提高代码调试效率

背后的故事


 随着项目需求的逐步增加,后端开发框架在我手上也慢慢重构为组件开发模式,整体结构类似于NopCommence。在这种结构中,每个组件所在的类库项目其实是生成到网站项目里指定的一个目录的,然后随之而来的就有一个不痛不痒的问题一直挥之不去。那就是每次在组件内修改代码后都要清理解决方案,然后重新生成一下才能开始调试。如果不重新生成的话,修改...

2017-03-25 20:52:00

在Parallel中使用DbSet.Add()发现的一系列多线程问题和解决过程

发现问题
需求很简单,大致就是要批量往数据库写数据,于是打算用Parallel并行的方式写入,希望能利用计算机多核特性加快程序执行速度。想的很美好,于是快速撸了类似下面的一串代码:

 using (var db = new SmsEntities())
 {
 ...

2016-11-13 23:36:00

在Centos中部署redis运行状态图形化监控工具 — RedisLive

写在前面

前两天看到张善友老师的一篇文章《先定个小目标, 使用C# 开发的千万级应用》,里面给出了一张腾讯OA基础服务中redis运行情况的一张监控图,然后想到自己的项目中前不久也上了redis缓存,所以也想找个监控工具。搜索一番,决定使用RedisLive来做监控。

和RedisLive有关的信息

RedisLiv...

2016-09-12 11:31:00

再说表单验证,在Web Api中使用ModelState进行接口参数验证

写在前面
上篇文章中说到了表单验证的问题,然后尝试了一下用扩展方法实现链式编程,评论区大家讨论的非常激烈也推荐了一些很强大的验证插件。其中一位园友提到了说可以使用MVC的ModelState,因为之前通常都在Web项目中用没在Api项目用过,想想Api方法接收的多参数都封装成了一个实体类,独立于数据Model层,这样其实很方便用ModelState做验证,于是尝试了一下。&#1...

2016-09-04 23:59:00

由表单验证说起,关于在C#中尝试链式编程的实践

在web开发中必不可少的会遇到表单验证的问题,为避免数据在写入到数据库时出现异常,一般比较安全的做法是前端会先做一次验证,通过后把数据提交到后端再验证一次,因为仅仅靠前端验证是不安全的,有太多的http请求工具可以轻松绕过你的前端验证把危险数据提交到后端,所以,之前不做后端参数验证的同学赶快检查一下你的代码~别中招了

那么,故事就是有关于后端验证。
这里...

2016-08-26 09:10:00

【新手总结】在.Net项目中使用Redis作为缓存服务

最近由于项目需要,在系统缓存服务部分上了redis,终于有机会在实际开发中玩一下,之前都是自己随便看看写写,很零碎也没沉淀下来什么,这次算是一个系统学习和实践过程的总结。

和Redis有关的基础知识
Redis是一个开源的分布式NoSql数据库,可以用来做缓存服务、消息队列、数据存储等等,数据类型之丰富,效率之高,简直逆天!没有了解过的可以移步去问度娘~...

2016-08-14 23:19:00

查看更多

勋章 我的勋章
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。