麻豆三级在线观看_丁香色欲久久久久久综合网_久久99久久99精品_日本精品www_喜爱夜蒲2在线_日韩av自拍偷拍_日韩一级在线免费观看_超碰91在线播放_国产精品网站免费_超碰在线资源站_www黄色日本_精品无码av无码免费专区

互聯網+內容
134-1887-2552

Asp.netcore中RedisMQ的簡單應用實現

標簽:深圳網站建設公司2021-01-01 1215

這篇文章主要介紹了Asp.net core中RedisMQ的簡單應用實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

最近一個外部的項目,使用到了消息隊列,本來是用rabbitmq實現的,但是由于是部署到別人家的服務器上,想盡量簡化一些,項目中本來也要接入了redis緩存,就嘗試使用redis來實現簡單的消息隊列。

使用redis做消息隊列有兩種方法,一種是使用pub/sub,另一種是使用list結構,配合brpop來消費。這兩種方式各有特點,這里簡述一下:

pub/sub模式,支持多客戶端消費,但是不支持持久化,這就意味著客戶端斷開的時間內發布的消息將會全部舍棄掉。

list配合brpop,默認不支持多客戶端消費,支持持久化。這種模式的多客戶端消費可以變相實現,比如下面的偽代碼:

#第一步push消息到隊列
lpush listA msg
#第二步,一個專門的分發客戶端取出消息,push到各個子隊列
var msg=brpop listA
lpush listA1 msg
lpush listA2 msg
......
#第三步,多個客戶端從對應的隊列消費消息
var client1_msg= brpop listA1
var client2_msg= brpop listA2
......

消息丟失不太可取,所以我選擇了list ,下一步需要選擇一個合適的客戶端。

Stackexchange.redis 算是一個老牌的客戶端了,但是由于其采用多路復用的模式,沒法支持Redis的blocking pops特性。所以我采用了國人寫的CSRedisCore。

首先需要在appsettings.json中添加redis的連接字符串:

{
"ConnectionStrings": {
"redis": "{ip}:{port},password=123456,prefix=my_"
}
}

具體配置請參考github上的文檔:

然后在startup.cs的ConfigureServices中配置redis:

public void ConfigureServices(IServiceCollection services)
{
//redis配置
RedisHelper.Initialization(new CSRedis.CSRedisClient(Configuration.GetConnectionString("redis")));
}

當然也可以采用依賴注入的方式添加CSRedisClient實例,這個不糾結。

在項目中有好幾處使用到了隊列,所以先封裝一個消費服務:

public abstract class RedisMQConsumer : BackgroundService
{
protected abstract string CacheKey { get; }

protected ILogger<RedisMQConsumer> logger;

public RedisMQConsumer(ILogger<RedisMQConsumer> logger)
{
this.logger = logger;
}

protected override Task ExecuteAsync(CancellationToken stoppingToken)
{
return Task.Run( async() =>
{
while (!stoppingToken.IsCancellationRequested)
{
try
{
var msg = RedisHelper.BRPop(5, CacheKey);
try
{
if (string.IsNullOrEmpty(msg)) continue;
if (!Process(msg))
{
//加入錯誤處理隊列,可以在后臺寫功能手動處理
RedisHelper.LPush(CacheKey + "_err", msg);
}
}
catch (Exception exp)
{
//加入錯誤處理隊列,可以在后臺寫功能手動處理
RedisHelper.LPush(CacheKey + "_err", msg);
logger.LogError(exp, "RedisMQConsumer Execute error");
}
}
catch
{
//網絡可能中斷
await Task.Delay(TimeSpan.FromSeconds(5), stoppingToken);
}

}
}, stoppingToken);
}

protected abstract bool Process(string message);
}

然后就可以繼承RedisMQConsumer,編寫實際邏輯:

public class AddOrderMQConsumer : RedisMQConsumer
{
public AddOrderMQConsumer(ILogger<RedisMQConsumer> logger) : base(logger)
{
}
protected override string CacheKey => "addOrder";
protected override bool Process(string message)
{
var order = JsonSerializer.Deserialize<Order>(message);
//處理邏輯
return true;
}
}

發布消息只是往隊列中添加項:

RedisHelper.LPush("addOrder", order);

最后把消費服務添加到startup.cs中:

public void ConfigureServices(IServiceCollection services)
{
//redis配置
RedisHelper.Initialization(new CSRedis.CSRedisClient(Configuration.GetConnectionString("redis")));

//redis消息隊列消費服務,放在redis配置下方
services.AddHostedService<AddOrderMQConsumer>();
}

經測試,還算穩定,小并發項目可以使用。

到此這篇關于Asp.net core中RedisMQ的簡單應用實現的文章就介紹到這了,更多相關Asp.net core RedisMQ內容請搜索深圳網站建設公司自由創想以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持深圳網站建設公司自由創想!

微信分享領紅包!
相關閱讀 / 返回上一頁
麻豆三级在线观看_丁香色欲久久久久久综合网_久久99久久99精品_日本精品www_喜爱夜蒲2在线_日韩av自拍偷拍_日韩一级在线免费观看_超碰91在线播放_国产精品网站免费_超碰在线资源站_www黄色日本_精品无码av无码免费专区
神马午夜伦理影院| 男人添女人下部视频免费| 日日干夜夜操s8| 激情五月宗合网| 欧美另类videosbestsex日本| 日日躁夜夜躁aaaabbbb| 久久久噜噜噜www成人网| www.国产二区| 中文字幕av导航| 污污的网站免费| 污视频网站观看| 国产又大又黄又粗又爽| 日韩在线视频在线观看| 日韩av中文字幕第一页| 97碰在线视频| 国产91视频一区| 国产精品8888| 日韩欧美视频免费在线观看| 黄色网址在线免费看| 欧美精品色视频| 91丝袜超薄交口足| 亚洲色图欧美自拍| 超级碰在线观看| 熟女少妇精品一区二区| 日韩av高清在线看片| 欧美黑人在线观看| 欧美图片激情小说| 黄色a级片免费看| 美女扒开大腿让男人桶| 国产亚洲黄色片| 999在线观看视频| 97国产精东麻豆人妻电影| 免费成人在线视频网站| 亚洲国产精品久久久久爰色欲| 日韩激情免费视频| 成人性视频欧美一区二区三区| 日本成人中文字幕在线| 蜜臀av免费观看| 国产精欧美一区二区三区白种人| 三级性生活视频| 国产欧美自拍视频| 日韩成人三级视频| 免费拍拍拍网站| 91专区在线观看| 日本熟妇人妻中出| 亚洲自拍第三页| 国产激情在线看| 久久久久久久午夜| 欧美性猛交xxx乱久交| www.污网站| 欧美a级免费视频| 69堂免费视频| 中文字幕久久av| 在线视频一二三区| 91成人在线观看喷潮教学| 国产裸体舞一区二区三区| 色免费在线视频| 日韩国产小视频| 三级4级全黄60分钟| av亚洲天堂网| 日韩成人手机在线| 国产一线二线三线在线观看| 一区二区三区日韩视频| 日本www在线视频| 美女av免费观看| 黄色免费观看视频网站| 老司机午夜性大片| 日本香蕉视频在线观看| 欧美少妇性生活视频| 尤物网站在线看| 免费在线观看视频a| 日韩av片网站| 国产精品国产对白熟妇| 中文字幕网av| 国产真人做爰毛片视频直播| 高清av免费看| 久激情内射婷内射蜜桃| 手机av在线网站| 三年中文在线观看免费大全中国| 欧美亚洲日本一区二区三区| 免费精品99久久国产综合精品应用| 亚洲成年人专区| 日本在线观看a| 成人在线观看www| 青青青国产在线视频| av片在线免费| 中文字幕亚洲影院| 欧美极品欧美精品欧美| 熟女少妇在线视频播放| 天天色天天干天天色| 黄色a级片免费| 欧美乱做爰xxxⅹ久久久| 一区二区成人网| 欧美,日韩,国产在线| 无码毛片aaa在线| 久久国产精品国产精品| 中文字幕乱码人妻综合二区三区 | 手机视频在线观看| 欧美综合在线播放| 欧美aaa在线观看| 久久久国产欧美| 9久久9毛片又大又硬又粗| 成人手机在线播放| 天堂视频免费看| 欧美日韩大尺度| 亚洲乱码中文字幕久久孕妇黑人| 青青草av网站| 免费av观看网址| 欧美性潮喷xxxxx免费视频看| 欧洲美女亚洲激情| 中文字幕网av| 手机看片福利日韩| 成人久久久久久久久| www.av片| 久久在线中文字幕| 日韩一级特黄毛片| 日韩在线xxx| 国产aaa一级片| 日韩av片在线看| 欧美 日本 亚洲| 热99这里只有精品| 日本男女交配视频| 麻豆映画在线观看| 麻豆映画在线观看| 色乱码一区二区三区在线| 久久婷婷五月综合色国产香蕉| 浓精h攵女乱爱av| 黄色av免费在线播放| 毛葺葺老太做受视频| 欧美精品成人网| 亚欧在线免费观看| 国产九九在线视频| 欧美午夜aaaaaa免费视频| wwwwxxxx日韩| 亚洲欧美日韩精品一区| 伊人国产精品视频| 亚洲精品国产久| 欧美二区在线视频| 青青草原av在线播放| 国产v亚洲v天堂无码久久久| 国产精品69页| 中文字幕成人在线视频| 男人午夜视频在线观看| mm131午夜| 97免费视频观看| 水蜜桃色314在线观看| 国内性生活视频| 午夜免费精品视频| 五月激情五月婷婷| 中文字幕第三区| 97免费视频观看| 免费黄色特级片| 中文字幕亚洲影院| 欧美 国产 精品| 黄色一级视频在线播放| 黄色片久久久久| 57pao国产成永久免费视频| 激情成人在线观看| 97超碰人人澡| 天美星空大象mv在线观看视频| 亚洲精品mv在线观看| 特大黑人娇小亚洲女mp4| 久久久久久久午夜| 天天干天天av| 人妻av无码专区| 久草福利视频在线| 污污污污污污www网站免费| 美女av免费在线观看| 免费成年人高清视频| 人妻激情另类乱人伦人妻| 日韩av在线综合| 熟女熟妇伦久久影院毛片一区二区| 欧美又粗又长又爽做受| 中文字幕第21页| xxxxxx在线观看| 国产自偷自偷免费一区| 欧美 日韩精品| 91插插插影院| 免费看又黄又无码的网站| 日韩中文字幕a| 久久综合伊人77777麻豆最新章节| 午夜一区二区视频| 成年人午夜视频在线观看| 污片在线免费看| 2019日韩中文字幕mv| 成人污网站在线观看| 亚洲五月天综合| 人妻无码一区二区三区四区| 已婚少妇美妙人妻系列| 黄色一级片网址| wwwxxx黄色片| 女同性恋一区二区| 少妇激情一区二区三区| 国产成人在线小视频| 五月天开心婷婷| 久久久噜噜噜www成人网| 日韩毛片在线免费看| 日本xxxxx18| 日日碰狠狠躁久久躁婷婷| 777久久精品一区二区三区无码 |