2016-02-19 43 views
0

所以,这可能不是正确的标题,我不知道如何把它和如何解释,让我们试试!Msmq什么是用户的正确执行方式

我有一个管理多过72万个用户的系统,我没有使用队列到现在为止,我想开始使用它,让我们举一个例子OS持有用户

[Serializable] 
    public class UserName 
    { 
     public string UserNameName { get; set; } 
     public string TheResonILikeTo { get; set; } 
    } 

这么一类,如果我想在我的队列中放置一条消息,其简单

public static void Createandsendmessageclass() 
     { 
      //From Windows Service, use this code 
      MessageQueue messageQueue = null; 
      if (MessageQueue.Exists(@".\Private$\SomeTestName")) 
      { 
       messageQueue = new MessageQueue(@".\Private$\SomeTestName"); 
       messageQueue.Label = "Testing Queue"; 
      } 
      else 
      { 
       // Create the Queue 
       MessageQueue.Create(@".\Private$\SomeTestName"); 
       messageQueue = new MessageQueue(@".\Private$\SomeTestName"); 
       messageQueue.Label = "Newly Created Queue"; 
      } 
      UserName user = new UserName(); 
      user.UserNameName = "Alon"; 
      user.TheResonILikeTo = "Fuc??"; 
      messageQueue.Send(user); 
     } 

直到这里一切都很好,很顺利。完全不用担心。

但是,可以说,我有一个具有不同名称的消息720000个用户,

  • 阿龙
  • 埃雷兹 * Ylan

等..

应该怎么为每个用户设置不同的队列,或者我可以让系统仅通过usernamename给我发送用户“alon”的消息吗?

另一个问题,我如何告诉我的代码不断收到消息?在while循环中运行?

谢谢大家!美好的一天

回答

1

要记住的最重要的事情是MSMQ是一个网络协议,而不是数据库。对于设计为720,000个用户存储消息的系统是不合适的。 用户的所有数据都应存储在数据库中。

+0

您在这里错过了解我,我将我的用户留在数据库中,我在这里谈论的是消息,而不是信息。 –

+0

“我在这里谈论消息传递。” 当然,但是你在哪里发送'from'和'to'消息? 请注意,每个连接设备必须运行MSMQ。 –

+0

我可以看到几个场景: 场景1. 基于服务器的应用程序将消息发送到用户PC上的队列。 本地PC上运行的应用程序 - 接收并处理消息。 这会在服务器上为每个需要传递消息的目标PC创建一个传出队列。 传出队列被动态地创建和销毁,所以会有0-720,000个队列。 –

相关问题