Browse Source

调整MQ为逐条顺序执行,关闭入库程序

lcl 5 months ago
parent
commit
66b3997414
3 changed files with 7 additions and 4 deletions
  1. BIN
      .DS_Store
  2. 5 2
      Common/RabbitMQClient.cs
  3. 2 2
      Util/PrizeDo.cs

BIN
.DS_Store


+ 5 - 2
Common/RabbitMQClient.cs

@@ -59,15 +59,18 @@ namespace MySystem
             }
             var channel = _connection.CreateModel();
             channel.QueueBind(QueueName, Exchange, RoutingKey);
+            channel.BasicQos(0, 1, false);
             EventingBasicConsumer consumer = new EventingBasicConsumer(channel);
             consumer.Received += (a, e) =>
             {
-                string MsgContent = Encoding.Default.GetString(e.Body.ToArray());
-                Function.WriteLog(DateTime.Now.ToString() + "\n" + MsgContent + "\n\n", "接收mq数据队列");
                 try
                 {
+                    string MsgContent = Encoding.Default.GetString(e.Body.ToArray());
+                    Function.WriteLog(DateTime.Now.ToString() + "-" + MsgContent, "接收mq数据队列");
                     PrizeDo.sendPrize(MsgContent);
+                    Function.WriteLog(DateTime.Now.ToString() + "-end", "接收mq数据队列");
                     channel.BasicAck(e.DeliveryTag, false); //收到回复后,RabbitMQ会直接在队列中删除这条消息
+                    Function.WriteLog(DateTime.Now.ToString() + "-BasicAck\n\n", "接收mq数据队列");
                 }
                 catch(Exception ex)
                 {

+ 2 - 2
Util/PrizeDo.cs

@@ -1433,8 +1433,8 @@ namespace Util
                     }
                 }
 
-                if(prizeInTable.excuteKind == "add") db.Insertable(doFields).AS(prizeInTable.tableEnName).ExecuteCommand();
-                if(prizeInTable.excuteKind == "update") db.Updateable(doFields).AS(prizeInTable.tableEnName).Where("1=1" + condi).ExecuteCommand();
+                // if(prizeInTable.excuteKind == "add") db.Insertable(doFields).AS(prizeInTable.tableEnName).ExecuteCommand();
+                // if(prizeInTable.excuteKind == "update") db.Updateable(doFields).AS(prizeInTable.tableEnName).Where("1=1" + condi).ExecuteCommand();
 
                 Function.WriteLog(DateTime.Now.ToString() + "\n" + prizeInTable.excuteKind + "\n" + prizeInTable.tableEnName + "\n" + Newtonsoft.Json.JsonConvert.SerializeObject(doFields) + "\n\n", "奖励入库数据");
             }