コード例 #1
0
ファイル: DBLog.cs プロジェクト: wangshengzhou/myLogger
        private static Task ConsumeAsync()
        {
            ServerInfo server = RabbitMQConfig.ServerInfoList[s_PublihServerIndex];
            var        task   = EasyNetQHelper.ReceiveAsyn <IList <LogMessage> >(server.Code, x => WriteToDb(x));

            return(task);
        }
コード例 #2
0
ファイル: DBLog.cs プロジェクト: wangshengzhou/myLogger
 public static void ConsumeForEach()
 {
     foreach (var server in RabbitMQConfig.ServerInfoList)
     {
         EasyNetQHelper.ReceiveAsyn <IList <LogMessage> >(server.Code, x => WriteToDb(x));
     }
 }
コード例 #3
0
ファイル: DBLog.cs プロジェクト: wangshengzhou/myLogger
        private static async void OnSendRequest(object sender, LogMessageEventArgs e)
        {
            IDataBuffer <object> buffer = e.Message as IDataBuffer <object>;

            if (buffer == null)
            {
                return;
            }
            var list = buffer.GetList().Cast <LogMessage>().ToList();

            if (!list.Any())
            {
                return;
            }

            bool isHandle = list[0].IsHandle;

            try
            {
                ServerInfo server = RabbitMQConfig.ServerInfoList[s_PublihServerIndex];
                var        flag   = await EasyNetQHelper.SendAsync(server.Code, list);

                if (flag > 0)
                {
                    //插入本地数据库
                    InsertLog(list);
                    string content = string.Format("本次批量插入{0}条数据,Task响应:{1},IsHandle:{2}", list.Count, flag, isHandle);
                    RecordLogCenterState("分布式日志1.0", content, isHandle, false);
                }
            }
            catch (Exception ex)
            {
                m_localLog.Error(ex);
                string content = string.Format("批量插入数据异常,原因:{0},IsHandle:{1}", ex.ToString(), isHandle);
                RecordLogCenterState("分布式日志1.0", content, isHandle, false);
            }
        }