我有一个用户将与之交互的 asp.net webforms 应用程序。当用户从站点中选择某些项目并单击一个按钮进行处理时。webapp 将为用户选择的每个项目添加一条消息到 msmq。
我想弄清楚的部分:
如果我的第二个应用程序的工作是处理队列 (msmq),它应该是什么类型的应用程序。关键是第二个应用程序需要处于空闲状态,直到我的 asp.net webapp 告诉它单击了“处理”按钮,然后它将继续检查队列并处理它。我不希望它每分钟左右不断检查队列,只在命令检查队列时。
Windows 服务、Web 服务、Web API?我目前有一个 Windows 服务,它每 30 秒检查一次队列。我怎样才能让它按需工作而不是不断检查?
在这里,它的措辞略有不同:
用户在 .NET 应用程序中并选择项目然后单击处理。
.Net 应用程序将需要处理的项目添加到队列 (msmq)。
.NET 应用程序将通知另一个应用程序进程按钮已被单击,并且它应该开始处理队列。处理完队列后,附加应用程序应返回某种空闲模式。
这里最重要的是我不希望它在每分钟检查队列中是否有项目的计时器上。这将消耗 24/7 运行的资源。
也许我对 msmq 的某些功能不熟悉。有没有办法 msmq 可以告诉我的服务它收到了队列中的消息,继续处理它们。而不是我的 .net 应用程序与服务通信?