【发布时间】:2020-06-19 00:17:55
【问题描述】:
我有一个应用程序 LocalApp 和一个 API 控制器 MyController_A。
当有人向MyController_A 发送请求时,控制器会将请求重定向到另一个应用程序RemoteApp 并暂停。
当RemoteApp 完成计算后,它会向LocalApp 发送一个发布请求到另一个控制器MyController_B。
任务是在发送响应之前等待来自MyController_B 的MyController_A 内的发布请求。
下面的例子可以帮助澄清问题:
public class MyController_A : ControllerBase
{
public object Post([FromBody] MyModel message)
{
SendDataToAnotherApp(message);
object result = new Task<object>(() =>
{
// Listening requests to MyController_B
return request;
}).Result;
return result;
}
}
【问题讨论】:
-
@mortb,感谢您的推荐。一旦我找到一种方法使它与远程应用程序一起工作,我将立即进行重构:)
-
您的远程应用程序所做的请求与对您的应用程序的原始请求无关。因此,您只需要确保远程应用程序仅在对 B 的请求也完成后才响应。
-
啊,现在我明白了,远程应用程序调用了 Controller_B
-
@mortb,没错。所以我找到了一种方法,正如我在下面发布的那样。也许不是最好的,但它确实有效。
-
回调是否包含一些id?否则多个同时回调可能会触发错误的响应
标签: c# asp.net-core