如何处理MSMQ延迟问题?

时间:2009-10-19 15:35:44

标签: c# .net web-services msmq message-queue

之情况:

功能A() - >创建消息并将消息放入队列

听众 - >如果队列中有消息并将其发送到服务,则不断检查             处理它并获得结果并将结果插入db

功能B() - >从db

获取结果

假设服务的结果尚未出现并且函数b()现在被调用,则消息id的记录将从db返回null,因为尚未插入结果。

你如何处理这样的场景?

1 个答案:

答案 0 :(得分:3)

如果功能B依赖于服务完成处理,那么它也应该在消息队列中运行。

当服务完成时,它应该将新消息写入另一个队列。另一个听众应该拿起它并调用功能B.

如果功能B由用户界面手势启动,则UI只需传达所需的流程尚未完成,并禁止该操作,直到它完成为止。