示例#1
0
        /// <summary>
        /// 发送消息
        /// </summary>
        /// <param name="doType">操作类型  ADD:增加 UPDATE:修改 DEL:删除</param>
        /// <param name="keyValue">主键字段的值(商品ID)</param>
        /// <param name="messageType">消息类型  1:普通商品(原平台商品)  2:掌合工厂商品  其他值:全部按普通商品处理</param>
        public void SendMes(OpenSeachMessageDoType doType, string keyValue, OpenSearchMessageType messageType)
        {
            Message m = new Message();

            try
            {
                m.Label = "LuceneMes";
                m.Body  = doType.ToString() + "|" + keyValue + "|" + (int)messageType;
                this.mesqueue.Send(m);
            }
            catch (Exception ex)
            {
                //需要处理异常
                LogHelper.WriteInfo(typeof(SendMessage), "方法名:OpenSearchMessage.SendMes" + "wzh" + "发送消息队列异常:" + ex.Message + "  " + keyValue);
            }
        }
示例#2
0
        /// <summary>
        /// 发送消息
        /// </summary>
        public void SendMes(string messageBody)
        {
            Message m = new Message();

            try
            {
                m.Label = "LuceneMes";
                m.Body  = messageBody;
                this.mesqueue.Send(m);
            }
            catch (Exception ex)
            {
                //需要处理异常
                LogHelper.WriteInfo(typeof(OpenSearchMessage), "方法名:OpenSearchMessage.SendMes" + "wzh" + "发送消息队列异常:" + ex.Message + ":" + messageBody);
            }
        }
示例#3
0
        /// <summary>
        /// 接收消息事件
        /// </summary>
        /// <param name="message"></param>
        private void Consumer_Listener(IMessage message)
        {
            ITextMessage itMsg = (ITextMessage)message;

            //判断是否批量接收消息
            if (!string.IsNullOrEmpty(itMsg.Text))
            {
                //批量接收消息
                RecueveMesToList(itMsg.Text);
                //批量接收消息至某阀值停止MQ连接
                if (msgList.Count >= ReceiveThresholdNum)
                {
                    _conn.Stop();
                    LogHelper.WriteInfo(typeof(HandleActiveMq <T>), "MQ连接停止!");
                }
            }
        }
示例#4
0
        /// <summary>
        /// 开始(启动接收和处理消息)
        /// </summary>
        public void StartMQ()
        {
            #region 接收消息
            ReceiveMessage();
            LogHelper.WriteInfo(typeof(HandleActiveMq <T>), "消息接收启动成功!");
            #endregion

            #region 处理消息
            for (int i = 1; i <= HandleThreadNum; i++)
            {
                Thread handleThread = new Thread(HandleMesToList);
                handleThread.Name         = "消息处理线程" + i.ToString();
                handleThread.IsBackground = true;
                handleThread.Start();

                LogHelper.WriteInfo(typeof(HandleActiveMq <T>), handleThread.Name + "启动成功!");

                //追加到线程集合
                thdList.Add(handleThread);
            }
            #endregion
        }
示例#5
0
        /// <summary>
        /// Post请求返回字符
        /// </summary>
        /// <param name="url">请求地址</param>
        /// <param name="postData">请求数据</param>
        /// <returns>字符</returns>
        public static string PostResponse(string url, object obj)
        {
            HttpClient httpClient = new HttpClient(new HttpClientHandler()
            {
                AutomaticDecompression = DecompressionMethods.GZip
            });
            HttpResponseMessage response = null;

            try
            {
                //using (HttpClient httpClient = new HttpClient())
                //{
                httpClient.MaxResponseContentBufferSize = 256000;
                httpClient.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36");
                httpClient.CancelPendingRequests();
                httpClient.DefaultRequestHeaders.Clear();
                string      postData    = JsonConvertTool.SerializeObject(obj);
                HttpContent httpContent = new StringContent(postData);
                httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                Task <HttpResponseMessage> taskResponse = httpClient.PostAsync(url, httpContent);
                taskResponse.Wait();
                response = taskResponse.Result;
                //using (HttpResponseMessage response = taskResponse.Result)
                //{
                //HttpResponseMessage response = httpClient.PostAsync(url, httpContent).Result;
                if (response.IsSuccessStatusCode)
                {
                    //Task<string> taskStr = response.Content.ReadAsStringAsync();
                    //taskStr.Wait();
                    //string result = taskStr.Result;

                    Task <System.IO.Stream> taskStream = response.Content.ReadAsStreamAsync();
                    taskStream.Wait();
                    System.IO.Stream       dataStream = taskStream.Result;
                    System.IO.StreamReader reader     = new System.IO.StreamReader(dataStream);
                    string result = reader.ReadToEnd();
                    return(result);
                }
                else
                {
                    LogHelper.WriteInfo(typeof(HttpClientHelper), "结果(Http):" + response.StatusCode + "内容:" + JsonConvertTool.SerializeObject(obj));
                }
                //}
                return(null);
                //}
            }
            catch (Exception exception)
            {
                LogHelper.Error("结果:异常 内容:" + JsonConvertTool.SerializeObject(obj) + "ex:" + exception.Message, exception);
                return(null);
            }
            finally
            {
                if (response != null)
                {
                    response.Dispose();
                }
                if (httpClient != null)
                {
                    httpClient.Dispose();
                }
            }
        }