中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

我心中(zhong)的核心組件(jian)~MSMQ與Redis隊列

回到目錄

這個文章其實是我心中的核心組件的第七回,確實在時間上有些滯后了,但內容并不滯后!本文MSMQ只是個引題,我確實不太想說它,它是微軟自己集成的一套消息隊列,寄宿在Window服務里,穩定性十在不敢恭維,而redis隊列我們選擇的驅動客戶端是ServiceStack.Redis,之(zhi)所以選(xuan)擇(ze)它(ta)就是因為它(ta)穩(wen)定,更新快,對于其它(ta)的驅(qu)動可能用上幾(ji)年都不會去更新,而(er)ServiceStack.Redis一直走到(dao)redis客戶(hu)端的前沿!

Redis隊(dui)列實(shi)(shi)時(shi)和(he)非(fei)實(shi)(shi)時(shi):這個說的實(shi)(shi)時(shi)和(he)非(fei)實(shi)(shi)時(shi)主要針對的是(shi)消(xiao)費者這邊,消(xiao)息生產者在(zai)(zai)生產消(xiao)息后,Redis隊(dui)列里存儲了這些消(xiao)息,而何時(shi)消(xiao)費就是(shi)我(wo)們要關心(xin)的問題了,非(fei)實(shi)(shi)時(shi)是(shi)說,在(zai)(zai)后端有(you)(you)個輪訓服務定(ding)時(shi)從(cong)隊(dui)列里拿消(xiao)息,這有(you)(you)一(yi)定(ding)的延(yan)時(shi)性;實(shi)(shi)時(shi)是(shi)說在(zai)(zai)消(xiao)費者一(yi)邊建立(li)Tcp長連(lian)接,當(dang)隊(dui)列有(you)(you)數據后馬上(shang)消(xiao)費它,當(dang)沒有(you)(you)數據時(shi)線程處(chu)于掛起等待狀(zhuang)態(tai)!

大叔實時消息隊列的消費者實現(Redis隊列)

      while (true)
            {
                var redis = Redis.Client.RedisManager.GetClient();//redis連(lian)接(jie)池

                if (redis.GetListCount("queue1") == 0) //消息為空(kong)掛起
                {
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("隊列(lie)為空,掛(gua)起1秒");
                    Thread.Sleep(1000);
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine("從隊列拿(na)出:" +
                    redis.PopItemFromList("queue1"));
                }

            }

大叔非實時消息隊列的實現

非實時隊列主要(yao)是(shi)(shi)在消費(fei)者一方采(cai)用了某種調度機制,定(ding)時去redis隊列里去拿數據,邏輯沒什么復雜的,大叔采(cai)用的調度組件還是(shi)(shi)Quartz.Net,原因(yin)是(shi)(shi)它功能(neng)強大,配置(zhi)靈活,解(jie)耦能(neng)力比(bi)較強!

配合(he)Cron表達式功能更強大(da)

回到目錄

posted @ 2015-09-21 11:43  張占嶺  閱讀(2065)  評論(0)    收藏  舉報