dodo hold před 2 roky
rodič
revize
54a597d57c

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
molilian.api/Properties/PublishProfiles/https___ccr.ccs.tencentyun.com_shaobin.pubxml.user


+ 2 - 2
molilian.api/Properties/launchSettings.json

@@ -5,7 +5,7 @@
       "launchBrowser": true,
       "launchUrl": "swagger",
       "environmentVariables": {
-        "ASPNETCORE_ENVIRONMENT": "Development",
+        "ASPNETCORE_ENVIRONMENT2": "Development",
         "EndPoint": "admin",
         "NtfyServer": "https://ntfy.yunhui800.com/5Sq9BytXXM5WDY3G",
         "ANPush": "",
@@ -15,7 +15,7 @@
         "CenterDB": "",
         "CenterRedis": ""
       },
-      "environmentVariables2": {
+      "environmentVariables": {
         "ASPNETCORE_ENVIRONMENT": "Development",
         "EndPoint": "cadmin",
         "NtfyServer": "https://ntfy.yunhui800.com/5Sq9BytXXM5WDY3G",

+ 67 - 25
molilian.core/Core/log/base.cs

@@ -60,6 +60,25 @@ namespace molilian.core
 
                         if (string.IsNullOrEmpty(node.redis_server)) return 0;
 
+
+#if DEBUG
+                        switch (node.name)
+                        {
+
+                            case "bj":
+                                node.redis_server = "101.200.46.46:6379,password=pKBiS4ka2IpXayIdcx00,defaultDatabase=0,idleTimeout=20000,preheat=3,tryit=2,ssl=false,prefix=webhook";
+                                break;
+                            case "gz":
+                                node.redis_server = "8.138.110.158:6379,password=pKBiS4ka2IpXayIdcx00,defaultDatabase=0,idleTimeout=20000,preheat=3,tryit=2,ssl=false,prefix=webhook";
+                                break;
+                            case "coupon1":
+                                node.redis_server = "c1api.molilian.com:6379,password=pKBiS4ka2IpXayIdcx00,defaultDatabase=0,idleTimeout=20000,preheat=3,tryit=2,ssl=false,prefix=coupon";
+                                break;
+                            default: return 0;
+                        }
+#endif
+
+
                         var redis = RedisClientManager.GetRedisClient(node.redis_server);
                         return BatchInsertLogDB(limit, redis);
                     });
@@ -97,7 +116,7 @@ namespace molilian.core
 
 
                 stopwatch.Start();
-                taskTotal = task_insert_parse_tb_logs(connection, transaction, limit, redis);
+                taskTotal = task_insert_parse_tb_logs(limit, redis);
                 total += taskTotal;
                 stopwatch.Stop();
                 log.Info($"task_insert_parse_tb_logs 耗时: {stopwatch.ElapsedMilliseconds} ms,\t插入记录数: {taskTotal}");
@@ -105,7 +124,7 @@ namespace molilian.core
                 stopwatch.Reset();
 
                 stopwatch.Start();
-                taskTotal = task_insert_parse_jd_logs(connection, transaction, limit, redis);
+                taskTotal = task_insert_parse_jd_logs(limit, redis);
                 total += taskTotal;
                 stopwatch.Stop();
                 log.Info($"task_insert_parse_jd_logs 耗时: {stopwatch.ElapsedMilliseconds} ms,\t插入记录数: {taskTotal}");
@@ -113,7 +132,7 @@ namespace molilian.core
                 stopwatch.Reset();
 
                 stopwatch.Start();
-                taskTotal = task_insert_parse_pdd_logs(connection, transaction, limit, redis);
+                taskTotal = task_insert_parse_pdd_logs(limit, redis);
                 total += taskTotal;
                 stopwatch.Stop();
                 log.Info($"task_insert_parse_pdd_logs 耗时: {stopwatch.ElapsedMilliseconds} ms,\t插入记录数: {taskTotal}");
@@ -121,7 +140,7 @@ namespace molilian.core
                 stopwatch.Reset();
 
                 stopwatch.Start();
-                taskTotal = task_insert_parse_dy_logs(connection, transaction, limit, redis);
+                taskTotal = task_insert_parse_dy_logs(limit, redis);
                 total += taskTotal;
                 stopwatch.Stop();
                 log.Info($"task_insert_parse_dy_logs 耗时: {stopwatch.ElapsedMilliseconds} ms,\t插入记录数: {taskTotal}");
@@ -129,7 +148,7 @@ namespace molilian.core
                 stopwatch.Reset();
 
                 stopwatch.Start();
-                taskTotal = task_insert_parse_tool_logs(connection, transaction, limit, redis);
+                taskTotal = task_insert_parse_tool_logs(limit, redis);
                 total += taskTotal;
                 stopwatch.Stop();
                 log.Info($"task_insert_parse_tool_logs 耗时: {stopwatch.ElapsedMilliseconds} ms,\t插入记录数: {taskTotal}");
@@ -145,7 +164,7 @@ namespace molilian.core
                 stopwatch.Reset();
 
                 stopwatch.Start();
-                taskTotal = task_insert_parse_coupon_logs(connection, transaction, limit, redis);
+                taskTotal = task_insert_parse_coupon_logs(limit, redis);
                 total += taskTotal;
                 stopwatch.Stop();
                 log.Info($"task_insert_parse_coupon_logs 耗时: {stopwatch.ElapsedMilliseconds} ms,\t插入记录数: {taskTotal}");
@@ -153,7 +172,7 @@ namespace molilian.core
                 stopwatch.Reset();
 
                 stopwatch.Start();
-                taskTotal = task_insert_parse_cps_logs(connection, transaction, limit, redis);
+                taskTotal = task_insert_parse_cps_logs(limit, redis);
                 total += taskTotal;
                 stopwatch.Stop();
                 log.Info($"task_insert_parse_cps_logs 耗时: {stopwatch.ElapsedMilliseconds} ms,\t插入记录数: {taskTotal}");
@@ -161,7 +180,7 @@ namespace molilian.core
                 stopwatch.Reset();
 
                 stopwatch.Start();
-                taskTotal = task_insert_promotion_img_logs(connection, transaction, limit, redis);
+                taskTotal = task_insert_promotion_img_logs(limit, redis);
                 total += taskTotal;
                 stopwatch.Stop();
                 log.Info($"task_insert_promotion_img_logs 耗时: {stopwatch.ElapsedMilliseconds} ms,\t插入记录数: {taskTotal}");
@@ -169,7 +188,7 @@ namespace molilian.core
                 stopwatch.Reset();
 
                 stopwatch.Start();
-                taskTotal = task_insert_parse_ks_logs(connection, transaction, limit, redis);
+                taskTotal = task_insert_parse_ks_logs(limit, redis);
                 total += taskTotal;
                 stopwatch.Stop();
                 log.Info($"task_insert_parse_ks_logs 耗时: {stopwatch.ElapsedMilliseconds} ms,\t插入记录数: {taskTotal}");
@@ -212,25 +231,24 @@ namespace molilian.core
             try
             {
                 Stopwatch stopwatch = new Stopwatch(); // 创建一个计时器
-                LoggerLibrary log = new LoggerLibrary("debug", "BatchInsertLogDB"); // 创建日志对象
 
                 var tasks = new List<Task<int>>
         {
-            Task.Run(() => RunTaskWithLogging(() => task_insert_tk_logs(limit, redis), "task_insert_tk_logs", log)),
-            Task.Run(() => RunTaskWithLogging(() => task_insert_parse_tb_logs(connection, transaction, limit, redis), "task_insert_parse_tb_logs", log)),
-            Task.Run(() => RunTaskWithLogging(() => task_insert_parse_jd_logs(connection, transaction, limit, redis), "task_insert_parse_jd_logs", log)),
-            Task.Run(() => RunTaskWithLogging(() => task_insert_parse_pdd_logs(connection, transaction, limit, redis), "task_insert_parse_pdd_logs", log)),
-            Task.Run(() => RunTaskWithLogging(() => task_insert_parse_dy_logs(connection, transaction, limit, redis), "task_insert_parse_dy_logs", log)),
-            Task.Run(() => RunTaskWithLogging(() => task_insert_parse_tool_logs(connection, transaction, limit, redis), "task_insert_parse_tool_logs", log)),
-            Task.Run(() => RunTaskWithLogging(() => task_insert_parse_deeplink_logs(limit, redis), "task_insert_parse_deeplink_logs", log)),
-            Task.Run(() => RunTaskWithLogging(() => task_insert_parse_coupon_logs(connection, transaction, limit, redis), "task_insert_parse_coupon_logs", log)),
-            Task.Run(() => RunTaskWithLogging(() => task_insert_parse_cps_logs(connection, transaction, limit, redis), "task_insert_parse_cps_logs", log)),
-            Task.Run(() => RunTaskWithLogging(() => task_insert_promotion_img_logs(connection, transaction, limit, redis), "task_insert_promotion_img_logs", log)),
-            Task.Run(() => RunTaskWithLogging(() => task_insert_parse_ks_logs(connection, transaction, limit, redis), "task_insert_parse_ks_logs", log))
+            Task.Run(() => RunTaskWithLogging(() => task_insert_tk_logs(limit, redis), "task_insert_tk_logs")),
+            Task.Run(() => RunTaskWithLogging(() => task_insert_parse_tb_logs(limit, redis), "task_insert_parse_tb_logs")),
+            Task.Run(() => RunTaskWithLogging(() => task_insert_parse_jd_logs(limit, redis), "task_insert_parse_jd_logs")),
+            Task.Run(() => RunTaskWithLogging(() => task_insert_parse_pdd_logs(limit, redis), "task_insert_parse_pdd_logs")),
+            Task.Run(() => RunTaskWithLogging(() => task_insert_parse_dy_logs(limit, redis), "task_insert_parse_dy_logs")),
+            Task.Run(() => RunTaskWithLogging(() => task_insert_parse_tool_logs(limit, redis), "task_insert_parse_tool_logs")),
+            Task.Run(() => RunTaskWithLogging(() => task_insert_parse_deeplink_logs(limit, redis), "task_insert_parse_deeplink_logs")),
+            Task.Run(() => RunTaskWithLogging(() => task_insert_parse_coupon_logs(limit, redis), "task_insert_parse_coupon_logs")),
+            Task.Run(() => RunTaskWithLogging(() => task_insert_parse_cps_logs(limit, redis), "task_insert_parse_cps_logs")),
+            Task.Run(() => RunTaskWithLogging(() => task_insert_promotion_img_logs(limit, redis), "task_insert_promotion_img_logs")),
+            Task.Run(() => RunTaskWithLogging(() => task_insert_parse_ks_logs(limit, redis), "task_insert_parse_ks_logs"))
         };
 
                 // 等待所有任务完成
-                Task.WhenAll(tasks).Wait();
+                Task.WhenAll(tasks).Wait();//252行
 
                 // 计算所有任务的结果总和
                 total = tasks.Select(t => t.Result).Sum();
@@ -241,13 +259,36 @@ namespace molilian.core
             {
                 //transaction.Rollback();
 
+
+                // 构建异常详细信息字符串
+                string detailedError = $"{ex.Message}\n" +
+                                       $"堆栈跟踪: {ex.StackTrace}\n";
+
+                if (ex.InnerException != null)
+                {
+                    detailedError += $"内部异常: {ex.InnerException.Message}\n" +
+                                     $"内部堆栈跟踪: {ex.InnerException.StackTrace}\n";
+                }
+
+                // 如果异常包含其他数据,也可以记录下来
+                if (ex.Data != null && ex.Data.Count > 0)
+                {
+                    detailedError += "附加数据:\n";
+                    foreach (var key in ex.Data.Keys)
+                    {
+                        detailedError += $"{key}: {ex.Data[key]}\n";
+                    }
+                }
+
+
                 _ = new LoggerLibrary("database_error", "parse_log")
-                    .Info(ex.Message, ex.StackTrace)
+                    .Info(detailedError)
                     .SaveAsync();
 
+
                 NotifyCore.Notify(new NifyMessage
                 {
-                    message = $"【写入日志异常】\n{ex.Message}\n{ex.StackTrace}",
+                    message = $"【Exception】\n{detailedError}",
                     priority = NifyMessagePriority.high,
                     tags = ["red_circle"]
                 });
@@ -261,8 +302,9 @@ namespace molilian.core
 
 
         // 新增一个辅助方法来处理日志记录和任务执行
-        private static int RunTaskWithLogging(Func<int> taskFunc, string taskName, LoggerLibrary log)
+        private static int RunTaskWithLogging(Func<int> taskFunc, string taskName)
         {
+            LoggerLibrary log = new LoggerLibrary("debug", "BatchInsertLogDB"); // 创建日志对象
             Stopwatch stopwatch = new Stopwatch();
             stopwatch.Start();
             int taskTotal = taskFunc();

+ 36 - 17
molilian.core/Core/log/coupon.cs

@@ -7,30 +7,49 @@ namespace molilian.core
     public partial class TkLogCore
     {
         static string queue_coupon_key = "queue:coupon_logs";
-        public static int task_insert_parse_coupon_logs(IDbConnection connection, IDbTransaction transaction, int limit, CSRedisClient redis)
+        public static int task_insert_parse_coupon_logs(int limit, CSRedisClient redis)
         {
             int total = 0;
-            for (int i = 0; i < limit; i++)
+            using var connection = DBContext.GetOpenConnection();
+            connection.Open();
+            using var transaction = connection.BeginTransaction();
+            try
             {
-                var data = redis.LPop<UnionCouponDTO>(queue_coupon_key);
-                if (data == null) break;
-
-                if (_test_oaid.Equals(data.oaid) ||
-                     data.ip.Contains("127.0.0"))
-                {
-                    var test_data = data.Convert2Json().Convert2Object<TestUnionCouponDTO>();
-                    connection.Insert(test_data);
-                }
-                else
+                for (int i = 0; i < limit; i++)
                 {
-                    connection.Insert(data);
-                    if (data.success)
+                    var data = redis.LPop<UnionCouponDTO>(queue_coupon_key);
+                    if (data == null) break;
+
+                    if (_test_oaid.Equals(data.oaid) ||
+                         data.ip.Contains("127.0.0"))
+                    {
+                        var test_data = data.Convert2Json().Convert2Object<TestUnionCouponDTO>();
+                        connection.Insert(test_data);
+                    }
+                    else
                     {
-                        var success_data = data.Convert2Json().Convert2Object<SuccessUnionCouponDTO>();
-                        connection.Insert(success_data);
+                        connection.Insert(data);
+                        if (data.success)
+                        {
+                            var success_data = data.Convert2Json().Convert2Object<SuccessUnionCouponDTO>();
+                            connection.Insert(success_data);
+                        }
                     }
+                    total++;
                 }
-                total++;
+                transaction.Commit();
+            }
+            catch (Exception ex)
+            {
+                transaction.Rollback();
+                new LoggerLibrary("TkLogCore_error", "task_insert_parse_coupon_logs")
+                      .Info(ex.Message, ex.StackTrace)
+                      .SaveAsync();
+                throw;
+            }
+            finally
+            {
+                connection.Close();
             }
             return total;
         }

+ 36 - 17
molilian.core/Core/log/cps.cs

@@ -8,30 +8,49 @@ namespace molilian.core
     {
         static string queue_cps_key = "queue:cps_logs";
 
-        public static int task_insert_parse_cps_logs(IDbConnection connection, IDbTransaction transaction, int limit, CSRedisClient redis)
+        public static int task_insert_parse_cps_logs(int limit, CSRedisClient redis)
         {
             int total = 0;
-            for (int i = 0; i < limit; i++)
+            using var connection = DBContext.GetOpenConnection();
+            connection.Open();
+            using var transaction = connection.BeginTransaction();
+            try
             {
-                var data = redis.LPop<UnionCpsDTO>(queue_cps_key);
-                if (data == null) break;
-
-                if (_test_oaid.Equals(data.oaid) ||
-                     data.ip.Contains("127.0.0"))
-                {
-                    var test_data = data.Convert2Json().Convert2Object<TestUnionCpsDTO>();
-                    connection.Insert(test_data);
-                }
-                else
+                for (int i = 0; i < limit; i++)
                 {
-                    connection.Insert(data);
-                    if (data.success)
+                    var data = redis.LPop<UnionCpsDTO>(queue_cps_key);
+                    if (data == null) break;
+
+                    if (_test_oaid.Equals(data.oaid) ||
+                         data.ip.Contains("127.0.0"))
+                    {
+                        var test_data = data.Convert2Json().Convert2Object<TestUnionCpsDTO>();
+                        connection.Insert(test_data);
+                    }
+                    else
                     {
-                        var success_data = data.Convert2Json().Convert2Object<SuccessUnionCpsDTO>();
-                        connection.Insert(success_data);
+                        connection.Insert(data);
+                        if (data.success)
+                        {
+                            var success_data = data.Convert2Json().Convert2Object<SuccessUnionCpsDTO>();
+                            connection.Insert(success_data);
+                        }
                     }
+                    total++;
                 }
-                total++;
+                transaction.Commit();
+            }
+            catch (Exception ex)
+            {
+                transaction.Rollback();
+                new LoggerLibrary("TkLogCore_error", "task_insert_parse_cps_logs")
+                      .Info(ex.Message, ex.StackTrace)
+                      .SaveAsync();
+                throw;
+            }
+            finally
+            {
+                connection.Close();
             }
             return total;
         }

+ 4 - 1
molilian.core/Core/log/deeplink.cs

@@ -49,9 +49,12 @@ namespace molilian.core
                 }
                 transaction.Commit();
             }
-            catch
+            catch (Exception ex)
             {
                 transaction.Rollback();
+                new LoggerLibrary("TkLogCore_error", "task_insert_parse_deeplink_logs")
+                      .Info(ex.Message, ex.StackTrace)
+                      .SaveAsync();
                 throw;
             }
             finally

+ 48 - 30
molilian.core/Core/log/dy.cs

@@ -8,40 +8,58 @@ namespace molilian.core
     {
         static string queue_parse_dy_key = "queue:parse_logs:dy";
 
-        public static int task_insert_parse_dy_logs(IDbConnection connection, IDbTransaction transaction, int limit, CSRedisClient redis)
+        public static int task_insert_parse_dy_logs(int limit, CSRedisClient redis)
         {
             int total = 0;
+            using var connection = DBContext.GetOpenConnection();
+            connection.Open();
+            using var transaction = connection.BeginTransaction();
+            try
+            {
 
-
-            for (int i = 0; i < limit; i++)
+                for (int i = 0; i < limit; i++)
+                {
+                    var data = redis.LPop<DyDataDTO>(queue_parse_dy_key);
+                    if (data == null) break;
+                    new DBContext.Table(connection, "tk_parse_logs")
+                        .Add("end_point", data.end_point)
+                        .Add("channel", (int)data.channel)
+                        .Add("accountId", data.accountId)
+                        .Add("accountName", data.accountName)
+                        .Add("rawContent", data.rawContent)
+                        .Add("success", data.success)
+                        .Add("message", data.message)
+                        .Add("reason", data.reason)
+                        .Add("content", data.content)
+                        .Add("itemId", data.itemId)
+                        .Add("itemName", data.itemName)
+                        .Add("pic", data.pic)
+                        .Add("couponAmount", data.couponAmount)
+                        .Add("promotionPrice", data.promotionPrice)
+                        .Add("taoToken", data.taoToken)
+                        .Add("shortLinkurl", data.shortLinkurl)
+                        .Add("deeplink_url", data.deeplink_url)
+                        .Add("elapsedTime", data.elapsedTime)
+                        .Add("subCode", data.subCode)
+                        .Add("ip", data.ip)
+                        .Add("oaid", data.oaid)
+                        .Add("create_time", data.create_time)
+                        .Create(DBContext.InsertType.NORMAL, transaction);
+                    total++;
+                }
+                transaction.Commit();
+            }
+            catch (Exception ex)
+            {
+                transaction.Rollback();
+                new LoggerLibrary("TkLogCore_error", "task_insert_parse_dy_logs")
+                      .Info(ex.Message, ex.StackTrace)
+                      .SaveAsync();
+                throw;
+            }
+            finally
             {
-                var data = redis.LPop<DyDataDTO>(queue_parse_dy_key);
-                if (data == null) break;
-                new DBContext.Table(connection, "tk_parse_logs")
-                    .Add("end_point", data.end_point)
-                    .Add("channel", (int)data.channel)
-                    .Add("accountId", data.accountId)
-                    .Add("accountName", data.accountName)
-                    .Add("rawContent", data.rawContent)
-                    .Add("success", data.success)
-                    .Add("message", data.message)
-                    .Add("reason", data.reason)
-                    .Add("content", data.content)
-                    .Add("itemId", data.itemId)
-                    .Add("itemName", data.itemName)
-                    .Add("pic", data.pic)
-                    .Add("couponAmount", data.couponAmount)
-                    .Add("promotionPrice", data.promotionPrice)
-                    .Add("taoToken", data.taoToken)
-                    .Add("shortLinkurl", data.shortLinkurl)
-                    .Add("deeplink_url", data.deeplink_url)
-                    .Add("elapsedTime", data.elapsedTime)
-                    .Add("subCode", data.subCode)
-                    .Add("ip", data.ip)
-                    .Add("oaid", data.oaid)
-                    .Add("create_time", data.create_time)
-                    .Create(DBContext.InsertType.NORMAL, transaction);
-                total++;
+                connection.Close();
             }
             return total;
         }

+ 41 - 22
molilian.core/Core/log/jd.cs

@@ -8,40 +8,59 @@ namespace molilian.core
     {
         static string queue_parse_jd_key = "queue:parse_logs:jd";
 
-        public static int task_insert_parse_jd_logs(IDbConnection connection, IDbTransaction transaction, int limit, CSRedisClient redis)
+        public static int task_insert_parse_jd_logs(int limit, CSRedisClient redis)
         {
             int total = 0;
-            for (int i = 0; i < limit; i++)
+            using var connection = DBContext.GetOpenConnection();
+            connection.Open();
+            using var transaction = connection.BeginTransaction();
+            try
             {
-                var data = redis.LPop<JdDataDTO>(queue_parse_jd_key);
-                if (data == null) break;
-
-
-                if (_test_oaid.Equals(data.oaid) ||
-                     data.ip.Contains("127.0.0"))
+                for (int i = 0; i < limit; i++)
                 {
-                    save_jd_parse_logs(data, "jd_parse_logs_test", connection, transaction);
-                }
-                else
-                {
-                    //save_jd_parse_logs(data, "jd_parse_logs", connection, transaction);
+                    var data = redis.LPop<JdDataDTO>(queue_parse_jd_key);
+                    if (data == null) break;
 
-                    if (save_dailys_log)
-                    {
-                        string daily_table = $"jd_parse_logs_{data.create_time:yyyyMMdd}";
-                        save_jd_parse_logs(data, daily_table, connection, transaction);
-                    }
 
-                    if (data.elapsedTime > 1000)
+                    if (_test_oaid.Equals(data.oaid) ||
+                         data.ip.Contains("127.0.0"))
                     {
                         save_jd_parse_logs(data, "jd_parse_logs_test", connection, transaction);
                     }
-                    if (data.success)
+                    else
                     {
-                        save_jd_parse_logs(data, "jd_parse_logs_success", connection, transaction);
+                        //save_jd_parse_logs(data, "jd_parse_logs", connection, transaction);
+
+                        if (save_dailys_log)
+                        {
+                            string daily_table = $"jd_parse_logs_{data.create_time:yyyyMMdd}";
+                            save_jd_parse_logs(data, daily_table, connection, transaction);
+                        }
+
+                        if (data.elapsedTime > 1000)
+                        {
+                            save_jd_parse_logs(data, "jd_parse_logs_test", connection, transaction);
+                        }
+                        if (data.success)
+                        {
+                            save_jd_parse_logs(data, "jd_parse_logs_success", connection, transaction);
+                        }
                     }
+                    total++;
                 }
-                total++;
+                transaction.Commit();
+            }
+            catch (Exception ex)
+            {
+                transaction.Rollback();
+                new LoggerLibrary("TkLogCore_error", "task_insert_parse_jd_logs")
+                      .Info(ex.Message, ex.StackTrace)
+                      .SaveAsync();
+                throw;
+            }
+            finally
+            {
+                connection.Close();
             }
             return total;
         }

+ 38 - 19
molilian.core/Core/log/ks.cs

@@ -8,35 +8,54 @@ namespace molilian.core
     {
         static string queue_parse_ks_key = "queue:parse_logs:ks";
 
-        public static int task_insert_parse_ks_logs(IDbConnection connection, IDbTransaction transaction, int limit, CSRedisClient redis)
+        public static int task_insert_parse_ks_logs(int limit, CSRedisClient redis)
         {
             int total = 0;
-            for (int i = 0; i < limit; i++)
+            using var connection = DBContext.GetOpenConnection();
+            connection.Open();
+            using var transaction = connection.BeginTransaction();
+            try
             {
-                var data = redis.LPop<KsDataDTO>(queue_parse_ks_key);
-                if (data == null) break;
-
-
-                if (_test_oaid.Equals(data.oaid) || data.ip.Contains("127.0.0"))
+                for (int i = 0; i < limit; i++)
                 {
-                    save_ks_parse_logs(data, "ks_parse_logs_test", connection, transaction);
-                }
-                else
-                {
-                    //save_ks_parse_logs(data, "ks_parse_logs", connection, transaction);
+                    var data = redis.LPop<KsDataDTO>(queue_parse_ks_key);
+                    if (data == null) break;
+
 
-                    if (save_dailys_log)
+                    if (_test_oaid.Equals(data.oaid) || data.ip.Contains("127.0.0"))
                     {
-                        string daily_table = $"ks_parse_logs_{data.create_time:yyyyMMdd}";
-                        save_ks_parse_logs(data, daily_table, connection, transaction);
+                        save_ks_parse_logs(data, "ks_parse_logs_test", connection, transaction);
                     }
-
-                    if (data.success)
+                    else
                     {
-                        save_ks_parse_logs(data, "ks_parse_logs_success", connection, transaction);
+                        //save_ks_parse_logs(data, "ks_parse_logs", connection, transaction);
+
+                        if (save_dailys_log)
+                        {
+                            string daily_table = $"ks_parse_logs_{data.create_time:yyyyMMdd}";
+                            save_ks_parse_logs(data, daily_table, connection, transaction);
+                        }
+
+                        if (data.success)
+                        {
+                            save_ks_parse_logs(data, "ks_parse_logs_success", connection, transaction);
+                        }
                     }
+                    total++;
                 }
-                total++;
+                transaction.Commit();
+            }
+            catch (Exception ex)
+            {
+                transaction.Rollback();
+                new LoggerLibrary("TkLogCore_error", "task_insert_parse_ks_logs")
+                      .Info(ex.Message, ex.StackTrace)
+                      .SaveAsync();
+                throw;
+            }
+            finally
+            {
+                connection.Close();
             }
             return total;
         }

+ 34 - 15
molilian.core/Core/log/pdd.cs

@@ -8,29 +8,48 @@ namespace molilian.core
     {
         static string queue_parse_pdd_key = "queue:parse_logs:pdd";
 
-        public static int task_insert_parse_pdd_logs(IDbConnection connection, IDbTransaction transaction, int limit, CSRedisClient redis)
+        public static int task_insert_parse_pdd_logs(int limit, CSRedisClient redis)
         {
             int total = 0;
-            for (int i = 0; i < limit; i++)
+            using var connection = DBContext.GetOpenConnection();
+            connection.Open();
+            using var transaction = connection.BeginTransaction();
+            try
             {
-                var data = redis.LPop<PddDataDTO>(queue_parse_pdd_key);
-                if (data == null) break;
+                for (int i = 0; i < limit; i++)
+                {
+                    var data = redis.LPop<PddDataDTO>(queue_parse_pdd_key);
+                    if (data == null) break;
 
 
-                if (_test_oaid.Equals(data.oaid) ||
-                     data.ip.Contains("127.0.0"))
-                {
-                    save_pdd_parse_logs(data, "pdd_parse_logs_test", connection, transaction);
-                }
-                else
-                {
-                    save_pdd_parse_logs(data, "pdd_parse_logs", connection, transaction);
-                    if (data.success)
+                    if (_test_oaid.Equals(data.oaid) ||
+                         data.ip.Contains("127.0.0"))
+                    {
+                        save_pdd_parse_logs(data, "pdd_parse_logs_test", connection, transaction);
+                    }
+                    else
                     {
-                        save_pdd_parse_logs(data, "pdd_parse_logs_success", connection, transaction);
+                        save_pdd_parse_logs(data, "pdd_parse_logs", connection, transaction);
+                        if (data.success)
+                        {
+                            save_pdd_parse_logs(data, "pdd_parse_logs_success", connection, transaction);
+                        }
                     }
+                    total++;
                 }
-                total++;
+                transaction.Commit();
+            }
+            catch (Exception ex)
+            {
+                transaction.Rollback();
+                new LoggerLibrary("TkLogCore_error", "task_insert_parse_pdd_logs")
+                      .Info(ex.Message, ex.StackTrace)
+                      .SaveAsync();
+                throw;
+            }
+            finally
+            {
+                connection.Close();
             }
             return total;
         }

+ 33 - 14
molilian.core/Core/log/promotion.cs

@@ -8,32 +8,51 @@ namespace molilian.core
     {
         static string promotion_img_key = "queue:promotion:img";
 
-        public static int task_insert_promotion_img_logs(IDbConnection connection, IDbTransaction transaction, int limit, CSRedisClient redis)
+        public static int task_insert_promotion_img_logs(int limit, CSRedisClient redis)
         {
             int total = 0;
 
-            for (int i = 0; i < limit; i++)
+            using var connection = DBContext.GetOpenConnection();
+            connection.Open();
+            using var transaction = connection.BeginTransaction();
+            try
             {
-                var data = redis.LPop<PromotionQueryDTO>(promotion_img_key);
-                if (data == null) break;
-
-                if (data.success)
+                for (int i = 0; i < limit; i++)
                 {
-                    data.similarPromotion = string.Empty;
-                    data.promotionImg = string.Empty;
-                }
+                    var data = redis.LPop<PromotionQueryDTO>(promotion_img_key);
+                    if (data == null) break;
 
-                //按日保存数据
-                string daily_table = $"tk_promotion_logs_{data.create_time:yyyyMMdd}";
-                save_tk_promotion_img_logs(data, daily_table, connection, transaction);
+                    if (data.success)
+                    {
+                        data.similarPromotion = string.Empty;
+                        data.promotionImg = string.Empty;
+                    }
 
-                total++;
+                    //按日保存数据
+                    string daily_table = $"tk_promotion_logs_{data.create_time:yyyyMMdd}";
+                    save_tk_promotion_img_logs(data, daily_table, connection, transaction);
+
+                    total++;
+                }
+                transaction.Commit();
+            }
+            catch (Exception ex)
+            {
+                transaction.Rollback();
+                new LoggerLibrary("TkLogCore_error", "task_insert_parse_pdd_logs")
+                      .Info(ex.Message, ex.StackTrace)
+                      .SaveAsync();
+                throw;
+            }
+            finally
+            {
+                connection.Close();
             }
             return total;
         }
 
         private static int save_tk_promotion_img_logs(PromotionQueryDTO data, string tablename, IDbConnection connection, IDbTransaction transaction)
-        { 
+        {
             try
             {
                 return new DBContext.Table(connection, tablename)

+ 55 - 36
molilian.core/Core/log/taobao.cs

@@ -9,55 +9,74 @@ namespace molilian.core
 
         static string queue_parse_tb_key = "queue:parse_logs:tb";
 
-        public static int task_insert_parse_tb_logs(IDbConnection connection, IDbTransaction transaction, int limit, CSRedisClient redis)
+        public static int task_insert_parse_tb_logs(int limit, CSRedisClient redis)
         {
             int total = 0;
-            for (int i = 0; i < limit; i++)
+            using var connection = DBContext.GetOpenConnection();
+            connection.Open();
+            using var transaction = connection.BeginTransaction();
+            try
             {
-                var data = redis.LPop<TkDataDTO>(queue_parse_tb_key);
-                if (data == null) break;
-
-                if (_test_oaid.Equals(data.oaid) ||
-                     data.ip.Contains("127.0.0"))
-                {
-                    save_tk_parse_logs(data, "tk_parse_logs_test", connection, transaction);
-                }
-                else
+                for (int i = 0; i < limit; i++)
                 {
-                    //data.id = save_tk_parse_logs(data, "tk_parse_logs", connection, transaction);
-
-                    ////每日分表
-                    //if (save_dailys_log)
-                    {
-                        string daily_table = $"tk_parse_logs_{data.create_time:yyyyMMdd}";
-                        save_tk_parse_logs(data, daily_table, connection, transaction);
-                    }
+                    var data = redis.LPop<TkDataDTO>(queue_parse_tb_key);
+                    if (data == null) break;
 
-                    if (data.elapsedTime > 1000)
+                    if (_test_oaid.Equals(data.oaid) ||
+                         data.ip.Contains("127.0.0"))
                     {
                         save_tk_parse_logs(data, "tk_parse_logs_test", connection, transaction);
                     }
-                    if (data.success)
+                    else
                     {
-                        save_tk_parse_logs(data, "tk_success_parse_logs", connection, transaction);
+                        //data.id = save_tk_parse_logs(data, "tk_parse_logs", connection, transaction);
+
+                        ////每日分表
+                        //if (save_dailys_log)
+                        {
+                            string daily_table = $"tk_parse_logs_{data.create_time:yyyyMMdd}";
+                            save_tk_parse_logs(data, daily_table, connection, transaction);
+                        }
+
+                        if (data.elapsedTime > 1000)
+                        {
+                            save_tk_parse_logs(data, "tk_parse_logs_test", connection, transaction);
+                        }
+                        if (data.success)
+                        {
+                            save_tk_parse_logs(data, "tk_success_parse_logs", connection, transaction);
+                        }
+                        if (!string.IsNullOrEmpty(data.itemId)) TkOrderTrackingCore.SaveLinkSummary(data);
                     }
-                    if (!string.IsNullOrEmpty(data.itemId)) TkOrderTrackingCore.SaveLinkSummary(data);
-                }
 
-                if (data.reason.Contains("初步筛选2") && !data.rawContent.Contains("I:/kWqN5t623Hx"))
-                {
-                    save_tk_parse_logs(data, "tk_parse_logs_test2", connection, transaction);
-                }
+                    if (data.reason.Contains("初步筛选2") && !data.rawContent.Contains("I:/kWqN5t623Hx"))
+                    {
+                        save_tk_parse_logs(data, "tk_parse_logs_test2", connection, transaction);
+                    }
 
-                if (data.reason.Contains("初步筛选1.5"))
-                {
-                    save_tk_parse_logs(data, "tk_parse_logs_multi_token", connection, transaction);
-                }
-                if (data.reason.Contains("霸下验证码"))
-                {
-                    save_tk_parse_logs(data, "tk_parse_logs_captcha", connection, transaction);
+                    if (data.reason.Contains("初步筛选1.5"))
+                    {
+                        save_tk_parse_logs(data, "tk_parse_logs_multi_token", connection, transaction);
+                    }
+                    if (data.reason.Contains("霸下验证码"))
+                    {
+                        save_tk_parse_logs(data, "tk_parse_logs_captcha", connection, transaction);
+                    }
+                    total++;
                 }
-                total++;
+                transaction.Commit();
+            }
+            catch (Exception ex)
+            {
+                transaction.Rollback();
+                new LoggerLibrary("TkLogCore_error", "task_insert_parse_tb_logs")
+                      .Info(ex.Message, ex.StackTrace)
+                      .SaveAsync();
+                throw;
+            }
+            finally
+            {
+                connection.Close();
             }
             return total;
         }

+ 62 - 43
molilian.core/Core/log/tool.cs

@@ -8,56 +8,75 @@ namespace molilian.core
     {
         static string queue_parse_tool_key = "queue:parse_logs:tool";
 
-        public static int task_insert_parse_tool_logs(IDbConnection connection, IDbTransaction transaction, int limit, CSRedisClient redis)
+        public static int task_insert_parse_tool_logs(int limit, CSRedisClient redis)
         {
             int total = 0;
 
-            for (int i = 0; i < limit; i++)
+            using var connection = DBContext.GetOpenConnection();
+            connection.Open();
+            using var transaction = connection.BeginTransaction();
+            try
             {
-                var data = redis.LPop<ToolParseDataDTO>(queue_parse_tool_key);
-                if (data == null) break;
+                for (int i = 0; i < limit; i++)
+                {
+                    var data = redis.LPop<ToolParseDataDTO>(queue_parse_tool_key);
+                    if (data == null) break;
 
 
-                if (_test_oaid.Equals(data.oaid) ||
-                     data.ip.Contains("127.0.0"))
-                {
-                    new DBContext.Table(connection, "tool_parse_logs_test")
-                        .Add("end_point", data.end_point)
-                        .Add("channel", (int)data.channel)
-                        .Add("rawContent", data.rawContent)
-                        .Add("success", data.success)
-                        .Add("message", data.message)
-                        .Add("reason", data.reason)
-                        .Add("content", data.content)
-                        .Add("taoToken", data.taoToken)
-                        .Add("shortLinkurl", data.shortLinkurl)
-                        .Add("deeplink_url", data.deeplink_url)
-                        .Add("elapsedTime", data.elapsedTime)
-                        .Add("ip", data.ip)
-                        .Add("oaid", data.oaid)
-                        .Add("create_time", data.create_time)
-                        .Create(DBContext.InsertType.NORMAL, transaction);
-                }
-                else
-                {
-                    new DBContext.Table(connection, "tool_parse_logs")
-                        .Add("end_point", data.end_point)
-                        .Add("channel", (int)data.channel)
-                        .Add("rawContent", data.rawContent)
-                        .Add("success", data.success)
-                        .Add("message", data.message)
-                        .Add("reason", data.reason)
-                        .Add("content", data.content)
-                        .Add("taoToken", data.taoToken)
-                        .Add("shortLinkurl", data.shortLinkurl)
-                        .Add("deeplink_url", data.deeplink_url)
-                        .Add("elapsedTime", data.elapsedTime)
-                        .Add("ip", data.ip)
-                        .Add("oaid", data.oaid)
-                        .Add("create_time", data.create_time)
-                        .Create(DBContext.InsertType.NORMAL, transaction);
+                    if (_test_oaid.Equals(data.oaid) ||
+                         data.ip.Contains("127.0.0"))
+                    {
+                        new DBContext.Table(connection, "tool_parse_logs_test")
+                            .Add("end_point", data.end_point)
+                            .Add("channel", (int)data.channel)
+                            .Add("rawContent", data.rawContent)
+                            .Add("success", data.success)
+                            .Add("message", data.message)
+                            .Add("reason", data.reason)
+                            .Add("content", data.content)
+                            .Add("taoToken", data.taoToken)
+                            .Add("shortLinkurl", data.shortLinkurl)
+                            .Add("deeplink_url", data.deeplink_url)
+                            .Add("elapsedTime", data.elapsedTime)
+                            .Add("ip", data.ip)
+                            .Add("oaid", data.oaid)
+                            .Add("create_time", data.create_time)
+                            .Create(DBContext.InsertType.NORMAL, transaction);
+                    }
+                    else
+                    {
+                        new DBContext.Table(connection, "tool_parse_logs")
+                            .Add("end_point", data.end_point)
+                            .Add("channel", (int)data.channel)
+                            .Add("rawContent", data.rawContent)
+                            .Add("success", data.success)
+                            .Add("message", data.message)
+                            .Add("reason", data.reason)
+                            .Add("content", data.content)
+                            .Add("taoToken", data.taoToken)
+                            .Add("shortLinkurl", data.shortLinkurl)
+                            .Add("deeplink_url", data.deeplink_url)
+                            .Add("elapsedTime", data.elapsedTime)
+                            .Add("ip", data.ip)
+                            .Add("oaid", data.oaid)
+                            .Add("create_time", data.create_time)
+                            .Create(DBContext.InsertType.NORMAL, transaction);
+                    }
+                    total++;
                 }
-                total++;
+                transaction.Commit();
+            }
+            catch (Exception ex)
+            {
+                transaction.Rollback();
+                new LoggerLibrary("TkLogCore_error", "task_insert_parse_tool_logs")
+                      .Info(ex.Message, ex.StackTrace)
+                      .SaveAsync();
+                throw;
+            }
+            finally
+            {
+                connection.Close();
             }
             return total;
         }

+ 4 - 1
molilian.core/Core/log/第三方旧接口.cs

@@ -69,9 +69,12 @@ namespace molilian.core
                 }
                 transaction.Commit();
             }
-            catch
+            catch (Exception ex)
             {
                 transaction.Rollback();
+                new LoggerLibrary("TkLogCore_error", "task_insert_tk_logs")
+                      .Info(ex.Message, ex.StackTrace)
+                      .SaveAsync();
                 throw;
             }
             finally

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů