首先发送消息然后执行代码

时间:2014-03-03 05:34:48

标签: c# asp.net-mvc

我们正在开发一款iPhone应用程序(用于购物)并拥有一个dotnet应用程序,它可以接收来自iphone的请求并对其进行处理。

    //How it works
  • iPhone将付款详细信息发送到dotnet应用程序进行处理。
  • dotnet使用来自交易的一些支付平台。
  • 向iPhone回复消息,无论交易是否成功

    //How it has to work
    
  • iPhone将付款详细信息发送到dotnet应用程序进行处理。

  • Controller会立即返回一些消息(只是为了确保已收到该详细信息)。
  • 处理请求(实际支付流程)
  • 通过电子邮件通知交易是否成功//this part is already implemented

因此,我甚至需要在处理事务之前返回一条消息(以使其更加用户友好,而不是因为整个过程造成的延迟而烦扰它们)。邮件发送后,应继续进行实际付款流程。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

只需编写如下的异步代码:

public ActionResult ProcessPayment(PaymentModel model)
{

    System.Threading.Tasks.Task.Factory.StartNew(() =>
    {
        //do your payment processing here...
    });

    return view("success blob blob...");
}

注意:无论如何,您的解决方案没有任何后备策略。如果您通过付款流程或邮件发送流程失败了,您会怎么做?!如果您需要全面的解决方案,请使用SignalR组件(尽管它更复杂)

答案 1 :(得分:0)

尝试使用像SignalR这样的异步库。