Beispiel #1
0
        protected override ErrorLogModel ThrowRequestID(HttpContext context, Exception ex)
        {
            int           siteId = 0;
            int           userId = 0;
            ErrorLogModel model  = new ErrorLogModel(ex, siteId, userId, context);

            // 存入数据库 & 发送通知
            LogAgent.Instance().SaveLog(model);

            return(model);
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            //#1 IOC容器初始化+注册服务
            IocCollection.AddService(new ServiceCollection()
                                     .AddDbContext <BizDataContext>(ServiceLifetime.Singleton)
                                     .AddTransient <IReadRepository, ReadDbExecutor>()//瞬时模式
                                     .AddTransient <IWriteRepository, WriteDbExecutor>()
                                     .AddSingleton <IGameDelegate, GameDelegate>());
            //.AddHostedService<OrderService>()); ;


            // 并行消费采集任务,线程数量应在配置文件中指定,默认为4线程
            Parallel.For(0, 4, taskIndex =>
            {
                Stopwatch sw = new Stopwatch();
                if (taskIndex == 0)
                {
                    while (true)
                    {
                        sw.Restart();
                        int taskCount = ServiceAgent.Instance().Build();
                        Console.WriteLine($"[生产]共生产{taskCount}笔任务,耗时{sw.ElapsedMilliseconds}ms");
                        Thread.Sleep(10 * 1000);
                    }
                }
                else
                {
                    while (true)
                    {
                        sw.Restart();
                        string code = string.Empty;
                        try
                        {
                            code = ServiceAgent.Instance().Execute(out string msg);
                            Console.WriteLine($"[{code}]{msg},耗时{sw.ElapsedMilliseconds}ms");
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine($"[{code}]{ex.Message},耗时{sw.ElapsedMilliseconds}ms");
                            LogAgent.Instance().SaveLog(new ErrorLogModel(ex));
                        }
                        Thread.Sleep(3000);
                    }
                }
            });
        }