C# Redis 简单消息队列

Anonymity | | 访问(289)

  使用Redis可以完成消息队列的功能,下面是一个简单的例子

using Clump.Redis.Business;
using System;
using System.Text;
using System.Web.Mvc;

namespace Clump.Redis.Controllers
{
    public class MessageQueueController : Controller
    {
        // 写入消息
        public string Wirte()
        {
            for (int i = 0; i < 1; i++)
            {
                MessageQueueModel mqm = new MessageQueueModel() 
                { Message = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff"), CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff") };
                RedisHelper.EnqueueItemOnList("MyMessageQueue", mqm);
            }
            return "OK";
        }

        // 读取消息并保存
        public ActionResult Read()
        {
            StringBuilder sb = new StringBuilder();
            bool isOK = true;
            do
            {
                string mmq = RedisHelper.DequeueItemFromList("MyMessageQueue");
                if (!string.IsNullOrEmpty(mmq))//此处用于处理数据,可将数据存储到数据库或者另行他用
                {
                    sb.Append(mmq);
                }
                else
                {
                    isOK = false;
                }
            }
            while (isOK);
            return Content(sb.ToString());
        }

    }

    public class MessageQueueModel
    {
        public string Message { get; set; }
        public string CreateTime { get; set; }
    }
}