【问题标题】:Using Async and await to update Database after sending response to Client [closed]在向客户端发送响应后使用异步并等待更新数据库 [关闭]
【发布时间】:2017-11-22 11:48:12
【问题描述】:

我正在使用 C# 开发 ASP.NET Web 应用程序。请通过。

现在,我想要的是客户端向 Server1 发送请求,而 Server1 请求 Server2。我希望后一个请求是异步的。 我希望 Server1 在收到来自 Server2 的响应之前立即响应客户端。

更新: 我一直在研究asyncawait,无法理解(举一个最简单的例子)解决方法。

我所理解的是async 告诉该函数是异步的,并且包含异步执行的await 语句。

我找不到任何理由说明人们为什么不赞成我的问题。 如果你这样做,请告诉我。

【问题讨论】:

  • 如果"Server1 在收到Server2 的响应之前立即响应客户端",您将如何向客户端返回“任务完成”响应?
  • @MickyD 因为 Server1 和 Server2 之间完成的任务与客户端的请求(原始表单填写)无关。它的状态更新有点像客户端被通知插入,而实际状态根据 Server2 更改为其他几个。
  • 你没有抓住重点。很确定一个典型的网络请求只能返回一个状态/结果
  • @MickyD Server2 对 Server1 请求的响应不会通知给用户。它只会在数据库中更新。
  • 这是因为你没有努力解决你的问题。如果你表现出努力,人们可能不会对此投反对票。

标签: c# asp.net asynchronous async-await multiserver


【解决方案1】:

这是一个应该使用队列的经典示例。当您收到来自客户端的请求时,您将任务(对服务器 2 的请求、更新数据库等)放入队列并立即响应客户端。 另外,您有队列消费者(Windows 服务或其他东西)从队列中读取任务并执行它们。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-09-16
  • 2019-10-25
  • 2023-03-07
  • 2015-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多