随笔分类 - 01-C#
摘要:一、简介 FluentScheduler是一个简单的任务调度框架,定时任务管理器。 GitHub地址:https://github.com/fluentscheduler/FluentScheduler 二、示例程序 2.1、界面 新建一个WinForm程序FluentSchedulerClient
阅读全文
摘要:一、简单介绍 Quartz.NET是一个强大、开源、轻量的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,用C#改写,可用于WinForm和ASP.NET应用中。它灵活而不复杂,可以为执行一个作业而创建简单或复杂的作业调度。它有很多特征,如:数据库支持、集群、插
阅读全文
摘要:一、项目创建 创建一个控制台应用程序,项目右键->管理 NuGet 程序包->Topshelft及Topshelf.Log4Net。 二、Topshelf配置 一般来说,服务都会设置每隔多长时间执行一次任务,这里使用System.Threading.Timer来做个简单的日志记录,将日志写入到Deb
阅读全文
摘要:一、概念名称 Windows服务(即以前的 NT 服务),使您能够创建在它们自己的Windows会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这种服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要
阅读全文
摘要:一、数据准备 在SQL Server中创建记录日志的数据表LogDetail: CREATE TABLE [dbo].[LogDetail]( [LogID] [INT] IDENTITY(1,1) NOT NULL, --自增ID [LogDate] [DATETIME] NULL, --日志时间
阅读全文
摘要:一、基础知识 1.1、简介 Log4Net是一个开源日志框架,它的功能很强大,可以将日志分为不同的等级,以不同的格式输出到不同的存储介质中,比如:数据库、txt文件、内存缓冲区、邮件、控制台、ANSI终端、远程接收端等等。 Log4Net将日志分为五个级别,从高到低分别是:FATAL(致命错误)、E
阅读全文
摘要:一、为什么使用Autofac? Autofac是.NET领域最为流行的IoC框架之一,传说是速度最快的一个。 1.1、性能 有人专门做了测试: 1.2、优点 1)与C#语言联系很紧密。C#里的很多编程方式都可以为Autofac使用,例如可以使用Lambda表达式注册组件。 2)较低的学习曲线。学习它
阅读全文
摘要:一、基础知识 1.1、Dapper简介 Dapper是.NET下的一个micro ORM,它和Entity Framework或NHibnate不同,属于轻量级并且是半自动的(实体类都要自己写)。假如你喜欢原生的Sql语句,又喜欢ORM的简单,那你一定会喜欢上Dapper这款ORM。 1.2、Dap
阅读全文
摘要:一、原理与环境 在生成数据表的实体类时,利用自定义特性,给它打上表及字段的特性,然后使用反射原理,将自定义特性拼接成增、删、改、查对应的SQL,即可完成一个简单的ORM。 本示例的执行环境: 1)数据库:SQL Server。(可根据自己的需要,建立不同的数据库工厂。) 2)数据表:需使用自增类型(
阅读全文
摘要:一、什么是T4? 1.1、T4简介 T4,即4个T开头的英文字母组合:Text Template Transformation Toolkit,是微软官方在Visual Studio 2008开始使用的代码生成引擎。T4是由一些文本块和控制逻辑组成的混合模板,简单地说,T4可以根据模板生成您想要的文
阅读全文
摘要:一、引言 使用工作队列的一个好处就是它能够并行的处理队列。如果堆积了很多任务,我们只需要添加更多的工作者(workers)就可以了,扩展很简单。本例使用多线程来创建多信道并绑定队列,达到多workers的目的。 二、示例 2.1、环境准备 在NuGet上安装RabbitMQ.Client。 2.2、
阅读全文
摘要:一、引言 日常生活中,很多的APP都有延迟队列的影子。比如在手机淘宝上,经常遇到APP派发的限时消费红包,一般有几个小时或24小时不等。假如在红包倒计时的过程中,没有消费掉红包的话,红包会自动失效。假如上述行为使用RabbitMQ延时队列来理解的话,就是在你收到限时消费红包的时候,手机淘宝会自动发一
阅读全文
摘要:一、引言 在具体业务中可能会遇到一些要提前处理的消息,比如普通客户的消息按先进先出的顺序处理,Vip客户的消息要提前处理。在RabbitMQ中,消息优先级的实现方式是:在声明queue时设置队列的x-max-priority属性,然后在publish消息时,设置消息的优先级即可。 RabbitMQ优
阅读全文
摘要:一、引言 fanout类型的Exchange,路由规则非常简单:它会把所有发送到该Exchange的消息,路由到所有与它绑定的Queue中。假设有一个聊天室,各个客户端都订阅在同一fanout exchange type,那每个客户端发送出来的消息,所有的客户端都能收到,因为大家都订阅了。此时,只需
阅读全文
摘要:一、环境准备 假设有两台服务器: 注意事项: 1)所有服务器的Erlang及RabbitMQ版本必须一样。 2)服务器名大小写敏感。 二、开始搭建 2.1、设置hosts文件 路径如下:C:\Windows\System32\drivers\etc 在hosts文件中添加主机及备机的IP地址及计算机
阅读全文
摘要:一、环境搭建 1.1、由于RabbitMQ是使用Erlang语言开发的,因此要安装Erlang运行时环境,下载地址:Erlang官网下载 CSDN分享下载 1.2、去RabbitMQ官网下载RabbitMQ Server服务端程序,选择合适的平台版本下载并安装。 RabbitMQ安装时,会自动在Wi
阅读全文
摘要:一、引言 RabbitMQ是Rabbit Message Queue的简写,但不能仅仅理解其为消息队列,消息代理更合适。RabbitMQ是一个由 Erlang 语言开发的AMQP(高级消息队列协议)的开源实现,其内部结构如下: RabbitMQ作为一个消息代理,主要和消息打交道,负责接收并转发消息。
阅读全文
摘要:一、引言 按照专用队列解释: MachineName\Private$\QueueName,只针对于本机的程序才可以调用的队列,有些情况下为了安全起见定义为私有队列。所以刚开始的时候认为,要想访问远程消息队列,只能使用公共队列。但是后来发现,公共队列依赖Domain Controller(域控),在
阅读全文
摘要:一、引言 MSMQ全称MicroSoft Message Queue,微软消息队列,是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间中的任一位置。它的实现原理是:消息的发送者把自己想要发送的信息放入一个容器中(我们称之为Messa
阅读全文
摘要:一、队列(Queue) 1.1、概念 队列(Queue)代表了一个先进先出的对象集合。当您需要对各项进行先进先出的访问时,则使用队列。当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队。 1.2、Queue类的属性 下表列出了Queue类的一些常用的属性: 属性描述 Count 获取
阅读全文

浙公网安备 33010602011771号