【发布时间】:2010-03-01 15:36:53
【问题描述】:
我正在构建一个将由供应商的应用程序使用的 .NET Web 服务,但我不确定如何完成以下操作:
- 供应商将致电我的网络服务提供一些信息,但希望快速返回确认,仅说明我收到了他们的信息。他们不在乎我用它做什么,也不想承认我已经完成了处理。
- 传递给我的信息需要在幕后做一些事情,并以对时间敏感的方式对信息采取行动 - 即在几分钟内采取一些行动。我将联系一些其他的网络服务,以及做一些数据库工作。显然,这将是在我向调用应用程序响应“成功”之后。
我无法控制供应商访问我的服务的方式,并且他们用来调用它的方法是同步的,因此我需要快速响应以让调用应用程序继续其工作。在我看来,有两种选择,尽管我对其他人持开放态度:
- 由于调用应用程序本质上是提交到队列以便我编写的进程可以处理它,我可以让 Web 服务将项目提交到数据库(或 MSMQ 或其他队列)然后返回成功.队列进程将从那里开始处理。
- 理想情况下,我认为我的服务可以返回“成功”,然后继续自行处理,但我不确定这是否可能。由于我的处理对时间敏感,因此启动新请求的后端处理是理想的,因此等待时间最短。
还有其他想法吗,或者其中一个听起来更可取?
【问题讨论】:
标签: .net asynchronous web-services queue