代码拉取完成,页面将自动刷新
自动创建交换机,队列,并将交换机和队列绑定,可以更加专注于业务代码的编写,处理了生产者并发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();
主要用于控制台,方便di调用
//在配置文件添加节点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}";
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。