Exemple #1
0
 public void EnQueue(string listId, string value)
 {
     using (IRedisClient Redis = RedisManager.GetClient())
     {
         Redis.EnqueueItemOnList(listId, value);
     }
 }
Exemple #2
0
 public void EnQueue(string value)
 {
     using (IRedisClient redisClent = RedisHelper.clientManager.GetClient())
     {
         redisClent.EnqueueItemOnList(rp.QueueName, value);
     }
 }
 /// <summary>
 /// 入队
 /// </summary>
 /// <param name="listid"></param>
 /// <param name="value"></param>
 public static void EnqueueItemOnList(string listid, string value)
 {
     using (IRedisClient redis = prcm.GetClient())
     {
         redis.EnqueueItemOnList(listid, value);
     }
 }
        public const string SystemQueue_PrefixName = "user.msg.{0}";//队列名称前缀

        /// <summary>
        /// 给某个队列发送消息
        /// </summary>
        /// <param name="queueName">队列名称</param>
        /// <param name="message">消息</param>
        /// <returns></returns>
        public ResponseResult SendMessage(string queueName, string message)
        {
            ResponseResult result = ResponseResult.Default();

            try
            {
                //NLogHelper.Instance.Info("开始SendPrintMessage=>Redis MQ消息队列......");
                if (string.IsNullOrEmpty(queueName))
                {
                    result = ResponseResult.Faild("queueName不能为空!");
                    return(result);
                }
                using (IRedisClient redisClient = RedisManager.GetClient())
                {
                    redisClient.EnqueueItemOnList(queueName, message);
                    result.RequestStatus = (int)ResultFlags.OK;
                    result.Msg           = message;
                    NLogHelper.Instance.Info(string.Format("SendPrintMessage=>Redis MQ消息队列:{0},消息:{1}......", queueName, message));
                }
            }
            catch (System.Exception ex)
            {
                result.RequestStatus = (int)ResponseResultStatus.Exception;
                result.Msg           = ex.Message;
                NLogHelper.Instance.Info(string.Format("SendPrintMessage=>Redis MQ消息队列Exception异常:{0}", ex.Message));
            }
            finally
            {
                //NLogHelper.Instance.Info("结束SendPrintMessage=>Redis MQ消息队列......");
            }
            return(result);
        }
Exemple #5
0
 //public static double SortedSet_GetItemScore<T>(string key,T t)
 //{
 //    using (IRedisClient redis = prcm.GetClient())
 //    {
 //        var data = ServiceStack.Text.JsonSerializer.SerializeToString<T>(t);
 //        return redis.GetItemScoreInSortedSet(key, data);
 //    }
 //    return 0;
 //}
 /// <summary>
 /// 往队列中加入值
 /// </summary>
 /// <param name="listId">主键</param>
 /// <param name="item">项</param>
 public void EnqueueItemOnList(string listId, string item)
 {
     using (IRedisClient redis = prcm.GetClient())
     {
         redis.EnqueueItemOnList(listId, item);
     }
 }
Exemple #6
0
        public override void OnException(ExceptionContext filterContext)
        {
            redisClient.EnqueueItemOnList("ErrorMsg", filterContext.Exception.ToString());

            filterContext.HttpContext.Response.Redirect("~/Error.html");

            base.OnException(filterContext);
        }
Exemple #7
0
 public override void OnException(ExceptionContext filterContext)
 {
     base.OnException(filterContext);
     #region 方法一
     ExceptionQueue.Enqueue(filterContext.Exception); //异常消息 -> 入列
     #endregion
     redisClient.EnqueueItemOnList("errorMsg", filterContext.Exception.ToString());
     filterContext.HttpContext.Response.Redirect("/Error.html");
 }
Exemple #8
0
 /// <summary>
 /// 往消息队列中放入数据
 /// </summary>
 /// <param name="listId">队列Id</param>
 /// <param name="value">数据</param>
 public static void Enqueue(string listId, string value)
 {
     listId = Prefix + listId;
     using (IRedisClient client = RedisManager.ClientManager.GetClient())
     {
         client.EnqueueItemOnList(listId, value);
     }
     return;
 }
Exemple #9
0
 public override void LPush <T>(string listId, T item, DateTime?expireTime)
 {
     using (IRedisClient redis = GetRedisClient())
     {
         var strValue = JsonConvert.SerializeObject(item, JsonSetting);
         redis.EnqueueItemOnList(listId, strValue);
         if (expireTime != null && expireTime.Value > DateTime.Now)
         {
             redis.ExpireEntryAt(listId, expireTime.Value);
         }
     }
 }
Exemple #10
0
        static void Main(string[] args)
        {
            #region 客户端添加消息
            redisClient.EnqueueItemOnList("Log", "1111");
            redisClient.EnqueueItemOnList("Log", "222");
            redisClient.EnqueueItemOnList("Log", "333");
            #endregion

            #region  务器端扫码消息
            ThreadPool.QueueUserWorkItem(o =>
            {
                while (true)
                {
                    try
                    {
                        if (redisClient.GetListCount("Log") > 0)
                        {
                            string log = redisClient.DequeueItemFromList("Log");
                            if (!string.IsNullOrEmpty(log))
                            {
                                Console.WriteLine(log);
                            }
                        }
                        else
                        {
                            Thread.Sleep(1000);    //为避免CPU空转,在队列为空时休息1秒
                        }
                    }
                    catch (Exception ex)
                    {
                        redisClient.EnqueueItemOnList("Log", ex.ToString());
                    }
                }
            });
            #endregion

            Console.ReadLine();
        }
Exemple #11
0
 /// <summary>
 /// 消息队列消息入队
 /// </summary>
 public static void EnqueueItemOnList(string listid, string value)
 {
     try
     {
         using (IRedisClient client = PooleClient.GetClient())
         {
             //将信息入队
             client.EnqueueItemOnList(listid, value);
         }
     }
     catch (Exception ex)
     {
         return;
     }
 }
Exemple #12
0
 public static bool EnqueueItemOnList(string key, string value)
 {
     try
     {
         using (IRedisClient client = GetClient())
         {
             client.EnqueueItemOnList(key, value);
             return true;
         }
     }
     catch (Exception ex)
     {
         return false;
     }
 }
Exemple #13
0
 /// <summary>
 /// 入队列
 /// </summary>
 public static bool SetQueue(string key, string val, RedisEnum redisEnum = RedisEnum.Main)
 {
     try
     {
         using (IRedisClient iRedisClient = redisEnum == RedisEnum.Main ? MainRedisClientManager.GetClient() : CommonRedisClientManager.GetClient())
         {
             iRedisClient.Password = redisEnum == RedisEnum.Main ? MainMasterPwd : CommonMasterPwd;
             iRedisClient.EnqueueItemOnList(key, val);
             return(true);
         }
     }
     catch (Exception ex)
     {
         FileHelper.logger.Warn("Redis入队列时异常 || " + ex.Message);
     }
     return(false);
 }
        /// <summary>
        /// 可以捕获异常数据
        /// </summary>
        /// <param name="filterContext"></param>
        public override void OnException(ExceptionContext filterContext)
        {
            base.OnException(filterContext);
            Exception ex = filterContext.Exception;

            #region 测试用
            //using (FileStream f = new FileStream(@"C:\Users\Administrator\Desktop\1.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite))
            //{
            //    byte[] b = Encoding.UTF8.GetBytes("你看看我是谁");
            //    f.Write(b, 0, b.Count());
            //}
            #endregion
            //ex入队
            //ExceptionQueue.Enqueue(ex);
            redisClient.EnqueueItemOnList("ExceptionQueue", ex.ToString());
            //跳转到错误页
            filterContext.HttpContext.Response.Redirect("/Error.html");
        }
Exemple #15
0
 /// <summary>
 /// 发布消息(生产者消费者模式)
 /// </summary>
 /// <param name="queueName">队列名称</param>
 /// <param name="message">消息</param>
 /// <param name="db"></param>
 public void Send(string queueName, string message, int db = 0)
 {
     try
     {
         Context.Db = db;
         if (string.IsNullOrEmpty(queueName))
         {
             return;
         }
         else
         {
             Context.EnqueueItemOnList(queueName, message);
         }
     }
     catch (RedisException ex)
     {
         SaveLog(ex, "Send", "");
     }
 }
Exemple #16
0
 /// <summary>
 /// 发布消息(生产者消费者模式)
 /// </summary>
 /// <param name="queueName">队列名称</param>
 /// <param name="message">消息</param>
 /// <param name="db"></param>
 public static void Send(string queueName, string message, int db = 0)
 {
     try
     {
         using (IRedisClient redis = Context(db).GetClient())
         {
             if (string.IsNullOrEmpty(queueName))
             {
                 return;
             }
             else
             {
                 redis.EnqueueItemOnList(queueName, message);
             }
         }
     }
     catch (RedisException ex)
     {
         SaveLog(ex, "Send", "");
     }
 }
 public override void OnException(ExceptionContext filterContext)
 {
     redisClient.EnqueueItemOnList("errorMsg", filterContext.Exception.ToString());
     base.OnException(filterContext);
 }
Exemple #18
0
 public virtual bool Enque <T>(T t)
 {
     redisClient.EnqueueItemOnList("test", "Hello World!");
     redisClient.EnqueueItemOnList("test", "Hello World2!");
     return(false);
 }
Exemple #19
0
 //如队列
 public static void Pushqueue(string listId, string value)
 {
     Redisclient.EnqueueItemOnList(listId, value);
 }
Exemple #20
0
 public static void WriteLogsByRedis(string type, string msg)
 {
     redisClient.EnqueueItemOnList("writeMsg", msg);
 }
Exemple #21
0
 public static void Enqueue(string ListId, string value)
 {
     RedisCli.EnqueueItemOnList(ListId, value);
 }
Exemple #22
0
 public void EnqueueItemOnList(string listId, string value)
 {
     _redisCli.EnqueueItemOnList(listId, value);
 }
Exemple #23
0
 /// <summary>
 /// 入队列
 /// </summary>
 /// <param name="key"></param>
 /// <param name="value"></param>
 public void Enque(string key, string value)
 {
     redisClent.EnqueueItemOnList(key, value);
 }
 //入队
 public static void Enqueue(string name, string value)
 {
     redisClent.EnqueueItemOnList(name, value);
 }
 /// <summary>
 ///     加入一个队列值
 /// </summary>
 /// <param name="key"></param>
 /// <param name="value"></param>
 public void EnQueenOnList(string key, string value)
 {
     RedisClient.EnqueueItemOnList(key, value);
 }