当前位置 : 主页 > 网页制作 > Nodejs >

.NET webservice – 快速确认,但继续在后台处理

来源:互联网 收集:自由互联 发布时间:2021-06-24
我正在构建一个供供应商应用程序使用的.NET Web服务,我不知道如何完成以下任务: 供应商会给我的webserivce提供一些信息,但是想要快速返回确认,只是声明我收到了他们的信息.他们不关
我正在构建一个供供应商应用程序使用的.NET Web服务,我不知道如何完成以下任务:

>供应商会给我的webserivce提供一些信息,但是想要快速返回确认,只是声明我收到了他们的信息.他们不关心我用它做什么,也不想要确认我已经完成了处理.
>我通过的信息需要在幕后做一些事情,并以时间敏感的方式对信息采取行动 – 即在几分钟内采取一些行动.我将联系其他一些Web服务,以及做一些数据库工作.显然,这是在我对调用应用程序响应“成功”之后.

我无法控制供应商访问我的服务的方式,他们用来调用它的方法是同步的,所以我需要快速响应让调用应用程序继续工作.在我看来,有两种选择,虽然我对其他人开放:

>由于调用应用程序本质上是提交到队列,以便我编写的进程可以处理它,我可以让Web服务只是将项目提交到数据库(或MSMQ或其他队列),然后返回成功.队列进程将从那里获取处理.
>理想情况下,我想到我的服务可以返回“成功”,然后继续自己处理,但我不确定这是否可行.由于我的处理是时间敏感的,因此开始新请求的后端处理是理想的,因此等待时间很短.

还有其他想法,或者其中一种听起来更可取?

我认为1st是唯一可行的解​​决方案.第二是非常糟糕的设计.假设您处理每个请求1秒钟,并且平均有1个请求在1秒内完成.您将很快耗尽资源(因为将使用越来越多的线程)

第一个是好的,因为您可以控制如何存储和处理请求.好的设计是将Web服务作为前端,只需回答“成功”并将请求排入队列.作为持久存储,我推荐MSMQ或数据库.然后创建一个具有线程池的服务应用程序,并从队列(db)中选择.

网友评论