蚂蚁男孩.队列组件(Framework.Mayiboy.Queue)
它能做什么
主要是用来方便使用队列而诞生,该组件封装了Queue和Redis中的队列,能够通过简单配置就可以高效快速使用起来。
使用说明
一、
下载源码,自己手动编译,手动引用必要的程序集。(需要手动创建配置文件)
二、
通过NuGet安装Packages
1、在程序包管理器控制台中输入Install-Package Framework.Mayiboy.Queue 回车
2、在管理解决方案的 NuGet程序包中安装,输入蚂蚁男孩,找到蚂蚁男孩.队列组件
配置文件说明
配置文件有四种配置来源,
1、项目配置文件configSections节点配置。(在web.config文件配置configSections节点指定配置参数)
2、应用根目录路径Framework.Mayiboy.Queue.config。(在应用程序跟路径使用Framework.Mayiboy.Queue.config配置文件)
3、应用程序配置文件路径。(配置文件路径使用Framework.Mayiboy.Queue.config配置文件)
4、环境变量指定配置文件路径。(在系统环境变量中配置Framework.Mayiboy.Queue.config配置文件路径,环境变量名FRAMEWORK.MAYIBOY_QUEUE_GLOBAL_CONFIG_FILE)
配置文件参数说明
默认配置:
<?xml version="1.0" encoding="utf-8" ?>
<Framework.Mayiboy.Queue>
<!-- IsLog[true,false]:是否开启全局日志路径
ThrowException[true,false]:设置日志组件是否向应用抛出异常
InnerLogPath[filepath]:全局日志路径(当IsLog="true"有效)
-->
<!-- 队列组件全局配置 -->
<Global IsLog="True" ThrowException="true" InnerLogPath="D:\applogs\projecname.name.queue\" /> <!-- 缓存配置 -->
<Queues>
<queue Name="RunTesttime" Type="RunTime" IsAutoDeal="false"/>
<queue Name="RedisTestQueue" Type="Redis" IsAutoDeal="false" QueueID="ProjectName.QueueID" ServerIPsWrite="127.0.0.1:6379" ServerIPsReadOnly="127.0.0.1:6379" DefaultDb="1"/>
</Queues>
</Framework.Mayiboy.Queue>
Global节点配置
IsLog【true|false】:配置true时表示启用队列配置日志文件,当组件出现不可预料的异常或者是需要输出必要提示时,会将其信息写入到配置文件中。
ThrowException:【true|false】:配置true时表示当队列组件出现不可预料的异常时,组件会将异常直接抛出,终止当前执行,不会写入到日志文件中。
InnerLogPath:日志文件输出路径。
Queues节点配置
Name:队列名,用来获取队列。
Type【RunTime|Redis】属性区分使用MemQueue、Redis。
IsAutoDeal【false|true】是否自动处理,配置成true时,需要在入队列时传入处理函数,当入队时组件会自动处理队列中的消息。
RunTime表示使用使用内存队列
Type="RunTime":队列使用的是Queue
Redis表示使用Redis中的队列
使用的是Redis中的list的数据类型的的特点(按照插入顺序排序)。
ProjectName.QueueID:队列名(Redis中的Key)
ServerIPsWrite:写服务器地址,可以通过;分隔符配置多台服务器
ServerIPsReadOnly:读服务器地址,可以通过;分隔符配置多台服务器
DefaultDb:Redis Db节点(默认0)
获取队列
MemQueue:var MemQueue = QueueFactory.GetQueue("runtime");
RedisQueue:var RedisQueue = QueueFactory.GetQueue("ProjectNameQueue");
建议使用方式,新建一个QueueManager对象
public class QueueManager
{
/// <summary>
/// 内存队列
/// </summary>
public static readonly IQueue RunTesttime;
/// <summary>
/// Redis队列
/// </summary>
public static readonly IQueue RedisTestQueue;
static QueueManager()
{
RunTesttime = QueueFactory.GetQueue("runtime");
RedisTestQueue = QueueFactory.GetQueue("ProjectNameQueue");
}
}
蚂蚁男孩.队列组件(Framework.Mayiboy.Queue)的更多相关文章
- 蚂蚁男孩.缓存组件(Framework.Mayiboy.Caching)
它能做什么? 主要是用来方便使用缓存而诞生,该组件封装了RunTimeCache.Memcached.Redis的使用,通过简单配置就能高效快速使用起来. 使用说明 一. 下载源码,自己手动编译 ...
- 【Microsoft Azure学习之旅】测试消息队列(Service Bus Queue)是否会丢消息
组里最近遇到一个问题,微软的Azure Service Bus Queue是否可靠?是否会出现丢失消息的情况? 具体缘由如下, 由于开发的产品是SaaS产品,为防止消息丢失,跨Module消息传递使用 ...
- Asp.net 面向接口可扩展框架之消息队列组件
消息队列对大多数人应该比较陌生.但是要提到MQ听说过的人会多很多.MQ就是英文单词"Message queue"的缩写,翻译成中文就是消息队列(我英语差,翻译错了请告知). PS: ...
- Java中的队列:java.util.Queue接口
队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作. Queue接口与List.Set同一级别,都是继承了Collection接口.Linked ...
- jQuery队列控制方法详解queue()/dequeue()/clearQueue()
queue(name,[callback]): 当只传入一个参数时, 它返回并指向第一个匹配元素的队列(将是一个函数数组,队列名默认是fx);$('#demo').queue('name') 当有两 ...
- [置顶] ※数据结构※→☆线性表结构(queue)☆============队列 顺序存储结构(queue sequence)(八)
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表.进行插入操作的端称为队尾,进行删除操作的 ...
- [置顶] ※数据结构※→☆线性表结构(queue)☆============循环队列 顺序存储结构(queue circular sequence)(十)
循环队列 为充分利用向量空间,克服"假溢出"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量.存储在其中的队列称为循环队列(Circular Queue). ...
- hadoop队列管理(指定queue跑程序)
hadoop 升级到cdh5后,队列管理被取消,而是统一用资源池分配. hadoop2.0版本,Hadoop采用了平级队列组织方式,,管理员可将用户分到若干个扁平队列中,在每个队列中,可指定一个或几个 ...
- 微软云消息队列 Azure service bus queue
前言 第一次使用消息队列,遇到了一些问题:同一个消息有多次出列.是一个消息只入列一次,还是多次?还是因为出列问题,出列了多次? Microsoft Azure service bus queue Az ...
随机推荐
- Spring声明式事务管理(基于注解方式实现)
----------------------siwuxie095 Spring 声明式事务管理(基于注解方式实现) 以转 ...
- 如何添加ECSHOP广告位置
如何添加ECSHOP广告位置 我们都知道ecshop系统默认的广告位置非常的少,但是一个电子商务网站岂能离开广告?庆幸的是,ecshop预留了足够强大的组件让我们能够完全有可能实现任意我们想要广告位置 ...
- OC 线程操作2 - NSThread
方法1 :直接创建 alloc init - (void)createNSThread111{ /* 参数1: (nonnull id) 目标对象 self 参数2:(nonnull SEL) ...
- php的静态化
原理,将动态的页面,存储为静态的HTML静态页,使浏览器直接请求该静态页. 测试:一个PHP动态页面与一个静态页面所消耗的时间 一般可以使用apache自带的ab(apache bench)程序来测试 ...
- MySQL主从复制备份
前言 数据库实时备份的需求很常见,MySQL本身提供了 Replication 机制,摘译官方介绍如下: MySQL Replication 可以将一个主数据库中的数据同步到一个或多个从数据库中.并且 ...
- qstring转string
Qt的QString功能丰富,对非英语语言的支持也不是问题,但支持得不够直接.例如,像 1 QString str("死亡使者赛维"); 这样直接用带中文的字符串进行构造,那么用Q ...
- 这样的UI UX设计师描述你满意吗?
UI/UX 设计师是我们耳熟能详的名称,但是这些红遍大江南北的设计师到底是什么鬼? 今天小编跟大家好好分享一些关于UI UX 设计师的描述,让大家搞清楚两者的含义和职责.全文主要分成UI设计师描述和U ...
- echarts 使用配置模式(含事件)
<!-- 引入echarts UMD 环境--> <script src="js/echarts/build/dist/echarts.js"></s ...
- spring-boot @Async 的使用、自定义Executor的配置方法
1. TaskExecutor Spring异步线程池的接口类,其实质是java.util.concurrent.Executor Spring 已经实现的异常线程池: 1. SimpleAsyncT ...
- myeclipse 中 svn 更新 提交 同步资源库 详细解释下他们的功能
原理是这样的 svn服务器一般放在公共的服务器上,大家连这个服务器,在MyEclipse上使用svn控件 可以下载svn上的项目至本地,所以很多公司将开发要用到的软件都放在svn上,有同事来只要连上s ...