Example #1
0
        public static void RegUserServer(string userID, string topicID, string producerID)
        {
            SysUser user = new SysUser();

            user.Id     = userID;
            user.Status = 1;

            using (SqlConnection connection = DBConnectionMgr.GetUserConnection())
            {
                using (SqlTransaction transaction = connection.BeginTransaction())
                {
                    new SysUserDbSvc(connection).Insert(user, transaction);
                    SysMessageQueue sysMQ = new SysMessageQueue()
                    {
                        Id         = Guid.NewGuid().ToString(),
                        Keys       = Guid.NewGuid().ToString(),
                        MsgCont    = userID,
                        Status     = OnsMQDefine.SysMessage_Status_UnSend,
                        Tags       = OnsMQDefine.MessageTag_TestLog,//tag 看业务需要,可以不传入,为查询方便,建议传入
                        ProducerID = producerID,
                        TopicID    = topicID
                    };
                    new SysMessageQueueDbSvc(connection).Insert(sysMQ, transaction);
                    transaction.Commit();
                }
            }
        }
Example #2
0
 /// <summary>
 /// 发送消息到 aliMQ,同时修改系统发送状态
 /// </summary>
 /// <param name="sysMQ">系统MQ消息记录</param>
 public void SendMessage(SysMessageQueue sysMQ)
 {
     using (SqlConnection connection = DBConnectionMgr.GetUserConnection())
     {
         using (SqlTransaction transaction = connection.BeginTransaction())
         {
             SysMessageQueueDbSvc sysMQDbSvc = new SysMessageQueueDbSvc(connection);
             sysMQ.Status = OnsMQDefine.SysMessage_Status_Sent;
             sysMQDbSvc.UpdateStatus(sysMQ, transaction);
             //根据 Key 查询,如果OnsMQ服务器上补存在消息,重发
             //if (string.IsNullOrEmpty(GetMessageByKey(sysMQ.Keys)))
             //{
             //发送消息
             if (SendMessageToAliMQ(sysMQ.MsgCont, sysMQ.Tags, sysMQ.Keys))
             {
                 transaction.Commit();
             }
             else
             {
                 transaction.Rollback();
             }
             //}
             //else { transaction.Commit(); }
         }
     }
 }
Example #3
0
 public void Insert(SysMessageQueue info, SqlTransaction transaction)
 {
     using (EnsureUserConnection())
     {
         DbConnection.Execute(@"Insert SysMessageQueue(Id, Tags, Keys, MsgCont, Status, ProducerID, TopicID)
                                     values (@Id, @Tags, @Keys, @MsgCont, @Status, @ProducerID, @TopicID)",
                              info, transaction);
     }
 }
Example #4
0
 public void UpdateStatus(SysMessageQueue info, SqlTransaction transaction = null)
 {
     using (EnsureUserConnection())
     {
         DbConnection.Execute(@"Update SysMessageQueue Set 
                                     Status = @Status 
                                     Where Id = @Id",
                              info, transaction);
     }
 }
Example #5
0
 public void Update(SysMessageQueue info)
 {
     using (EnsureUserConnection())
     {
         DbConnection.Execute(@"Update SysMessageQueue Set 
                                     Tags = @Tags,
                                     Keys = @Keys,
                                     MsgCont = @MsgCont,
                                     Status = @Status 
                                     ProducerID = @ProducerID,
                                     TopicID = @TopicID,
                                     Where Id = @Id",
                              new
         {
             Id      = info.Id,
             Tags    = info.Tags,
             Keys    = info.Keys,
             MsgCont = info.MsgCont
         });
     }
 }