蚂蚁男孩.队列组件(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 ...
随机推荐
- Python issubclass() 函数
Python issubclass() 函数 Python 内置函数 描述 issubclass() 方法用于判断参数 class 是否是类型参数 classinfo 的子类. 语法 以下是 iss ...
- HttpClient实战二:单线程和多线程连接池实例
为什么使用HTTP连接池? 随着系统架构风格逐渐向前后端分离架构,微服务架构转变,RestFul风格API的开发与设计,同时SpringMVC也很好的支持了REST风格接口.各个系统之间服务的调用大多 ...
- 7-掉馅饼(数组dp)
/* 免费馅饼 时间限制:1000 ms | 内存限制:65535 KB ...
- Fragment 生命周期 全局变量的声明位置
public class Fragment_shouye extends Fragment { private List<Zixun_shouye> datas; private TopV ...
- discuz回贴通知插件实现-用户状态设置
1.获取用户提交数据 discuz通过$_GET来获取全部数据,包括($_GET,$_POST). else if($_GET['pluginop'] == 'set') { //获取用户提交数据 $ ...
- maven项目工程目录约定
使用maven创建的工程我们称它为maven工程,maven工程具有一定的目录规范,如下: src/main/java —— 存放项目的.java文件 src/main/resources —— 存放 ...
- .net体系与java体系
对于.NET Framework体系结构,参考了"你必须知道的.NET"并”借用“别人的经典体系结构图从宏观上说明一下我的理解. 图1 简单的说下几个名词: CLR: 通用语言运行 ...
- jquery阻止表单提交
<form action="" method="post" onSubmit="return confirm();" > < ...
- Mysql 查看表结构的命令
创建数据库create database abc; 显示数据库 show databases; 使用数据库 use 数据库名; 直接打开数据库 mysql -h localhost -u root - ...
- Vue2.0 keep-alive 组件的最佳实践
1.基本用法 vue2.0提供了一个keep-alive组件用来缓存组件,避免多次加载相应的组件,减少性能消耗 <keep-alive> <component> <!-- ...