它能做什么

  主要是用来方便使用队列而诞生,该组件封装了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)的更多相关文章

  1. 蚂蚁男孩.缓存组件(Framework.Mayiboy.Caching)

    它能做什么? 主要是用来方便使用缓存而诞生,该组件封装了RunTimeCache.Memcached.Redis的使用,通过简单配置就能高效快速使用起来. 使用说明 一.    下载源码,自己手动编译 ...

  2. 【Microsoft Azure学习之旅】测试消息队列(Service Bus Queue)是否会丢消息

    组里最近遇到一个问题,微软的Azure Service Bus Queue是否可靠?是否会出现丢失消息的情况? 具体缘由如下, 由于开发的产品是SaaS产品,为防止消息丢失,跨Module消息传递使用 ...

  3. Asp.net 面向接口可扩展框架之消息队列组件

    消息队列对大多数人应该比较陌生.但是要提到MQ听说过的人会多很多.MQ就是英文单词"Message queue"的缩写,翻译成中文就是消息队列(我英语差,翻译错了请告知). PS: ...

  4. Java中的队列:java.util.Queue接口

    队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作. Queue接口与List.Set同一级别,都是继承了Collection接口.Linked ...

  5. jQuery队列控制方法详解queue()/dequeue()/clearQueue()

    queue(name,[callback]):  当只传入一个参数时, 它返回并指向第一个匹配元素的队列(将是一个函数数组,队列名默认是fx);$('#demo').queue('name') 当有两 ...

  6. [置顶] ※数据结构※→☆线性表结构(queue)☆============队列 顺序存储结构(queue sequence)(八)

    队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表.进行插入操作的端称为队尾,进行删除操作的 ...

  7. [置顶] ※数据结构※→☆线性表结构(queue)☆============循环队列 顺序存储结构(queue circular sequence)(十)

    循环队列 为充分利用向量空间,克服"假溢出"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量.存储在其中的队列称为循环队列(Circular Queue). ...

  8. hadoop队列管理(指定queue跑程序)

    hadoop 升级到cdh5后,队列管理被取消,而是统一用资源池分配. hadoop2.0版本,Hadoop采用了平级队列组织方式,,管理员可将用户分到若干个扁平队列中,在每个队列中,可指定一个或几个 ...

  9. 微软云消息队列 Azure service bus queue

    前言 第一次使用消息队列,遇到了一些问题:同一个消息有多次出列.是一个消息只入列一次,还是多次?还是因为出列问题,出列了多次? Microsoft Azure service bus queue Az ...

随机推荐

  1. hover

    hover - Bing dictionary US[ˈhɒvə(r)] v.盘旋:徘徊:犹豫:巡弋 网络翱翔:悬停:盘旋于

  2. CloseableHttpClient(二)

    package com.cmy.httpClient; import java.io.IOException; import org.apache.http.HttpEntity; import or ...

  3. 鼠标经过的图片高亮显示,其余变暗效果[xyytit]

    初始代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...

  4. 基于快速排序的数组划分:2组 3组 K组(sort color)大小写排序 · Partition Array

    2组: [抄题]: 给出一个整数数组 nums 和一个整数 k.划分数组(即移动数组 nums 中的元素),使得: 所有小于k的元素移到左边 所有大于等于k的元素移到右边 返回数组划分的位置,即数组中 ...

  5. javascript中Date使用

    <script type="text/javascript">    //返回当前日期和时间        var newDate=new Date();        ...

  6. TextView 小技巧

    1.TextView的单行显示 最后空间不够的画变为省略号显示 textView中让结尾变为省略号android:ellipsize = "end" 省略号在结尾tv.setEll ...

  7. MyEclipse2018.9.0设置全局编码

    1.windows->Preferences打开"首选项"对话框,左侧导航,导航到general->Workspace 右侧Text file encoding,选择O ...

  8. nginx 反向代理 apache 服务

    反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时 ...

  9. centos一键安装lnmp成功后无法访问ip(解决办法)

    自己搞了个服务器 (我的服务器网络类型是 专有网络)如下图点击 配置规则 进入到 进.出端口规则配置 点击添加安全组规则 如图所配置  添加完成后 就如下面所示 (配置完成后 通过ip就已经可以访问了 ...

  10. Zookeeper 系列(二)安装配制

    Zookeeper 系列(二)安装配制 一.Zookeeper 的搭建方式 Zookeeper 安装方式有三种,单机模式和集群模式以及伪集群模式. 单机模式 :Zookeeper 只运行在一台服务器上 ...