1 Star 10 Fork 7

MUSHR / Helpers2

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 2.41 KB
一键复制 编辑 原始数据 按行查看 历史
lijiayong 提交于 2020-08-18 16:03 . 1

Helpers.RabbitMqHelper-rabbitmq封装类(已应用到生产环境)

自动创建交换机,队列,并将交换机和队列绑定,可以更加专注于业务代码的编写,处理了生产者并发BasicPublish报505的问题

MqConfig config = new MqConfig()
{
    HostName = "xxx",
    Port = xxx,
    UserName = "xxx",
    Password = "xxx",
    ExchangeName = "xxx",
    vHost = "xxx",
    PrefetchCount = 1,
    AutoAck = false,
    IsDebug = false,
};
MqGlobleConfig.InitDefaultConnection(config);

MqChannelManager channelManager = new MqChannelManager();
//创建消费者
var receiveChannel = channelManager.CreateReceiveChannel("xxx", async x =>
{
    Log.Information($"receive => {x.Content}");
    x.BasicAck();//手动回答
});
//创建生产者
var producerChannel = channelManager.CreatePublishChannel("xxx");
//单个
producerChannel.Publish("xxx");
//批量
producerChannel.BatchPublish(Enumerable.Range(1, 10000).Select(x => "xxx"));
Thread.Sleep(-1);
producerChannel.Stop();

Helpers.DiHelper

主要用于控制台,方便di调用

Helpers.MongoHelper

//在配置文件添加节点mongo
public class MongoConfig
{
    public const string SectionName = "mongo";
    /// <summary>
    /// 数据库连接串
    /// </summary>
    [Required]
    public string Connection { get; set; }
    /// <summary>
    /// 数据库名称
    /// </summary>
    [Required]
    public string DatabaseName { get; set; }
    /// <summary>
    /// 仓储所在的程序集名称,非必填项,默认启动时会自动发现仓储类并注册
    /// </summary>
    public List<string> RepositoryAssemblyNames { get; set; }
}

//注册服务
services.AddMongoHelperz(Configuration);

//定义实体
public class SysParams : MongoEntity
{
    public string code { get; set; }
    public string value { get; set; }
}
//定义单例仓储,用于集合名称固定的
public class SysParamsRepository : MongoRepository<SysParams>
{

}
//定义多例仓储,用于集合名称不固定(分表)
public class SysParamsRepository : TransientMongoRepository<SysParams>
{
    public AliUserDataRepository(IMongoDatabase mongoDatabase) : base(mongoDatabase, "_xxxx")
    {
    }
    public override void SetCollectionName(Func<string> configure)
    {
        //编辑集合名称
        GetCollectionName = () => $"{configure()}{_collectionName}";
    }
}
C#
1
https://gitee.com/mushr/Helpers2.git
git@gitee.com:mushr/Helpers2.git
mushr
Helpers2
Helpers2
master

搜索帮助