正如您很可能会发现的那样,一般而言,我对异步操作不是很有经验(仅使用Android的AsyncTask)。

这是WCF REST POST方法的概述。我将使用此图像来希望解释我要实现的目标。

c# - WCF REST-是否可以在不结束执行的情况下返回响应?-LMLPHP

FirstJob将一些内容保存到数据库中。

SecondJob读取保存在数据库中的内容,并对数据进行一些处理。

客户端不关心SecondJob中发生的事情,而只想接收FirstJob的响应。

因此,由于SecondJob依赖FirstJob,因此这两个作业不需要并行运行。理想情况下,SecondJob将在单独的线程/上下文(?)或类似线程中运行。

据我所知,第二个作业确实在单独的线程中开始,第二个作业正在运行时执行到达return语句,但是直到SecondJob完成后,请求才结束。

最佳答案

我个人将第二个作业视为单独的POST操作,然后从 Controller 调用第二个作业POST。 Controller 是第一个作业的 Controller ,可以从第一个作业返回正确的状态。碰巧在执行此操作时将POST调出到另一个端点。

这种方法的好处是第二项工作甚至不需要在同一IIS上(在NLB服务器场中它可以在任何地方),因此您可以免费获得负载平衡。替代地,“第二作业服务器”可以在仅为此类后台处理任务保留的特定URL上。

10-08 00:38