【问题标题】:Sending a message first and then executing code先发消息再执行代码
【发布时间】:2014-03-03 05:34:47
【问题描述】:

我们正在开发一个 iPhone 应用程序(用于购物)并有一个 dotnet 应用程序,它接受来自 iphone 的请求并处理它们。

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

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

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

所以我需要在交易处理之前返回一条消息(以使其更加用户友好,而不是因为整个过程造成的延迟而惹恼他们)。消息发送后,应继续进行实际付款过程。我该怎么做?

【问题讨论】:

    标签: c# asp.net-mvc


    【解决方案1】:

    只需像这样编写您的异步代码:

    public ActionResult ProcessPayment(PaymentModel model)
    {
    
        System.Threading.Tasks.Task.Factory.StartNew(() =>
        {
            //do your payment processing here...
        });
    
        return view("success blob blob...");
    }
    

    注意:无论如何,您的解决方案没有任何后备策略。如果您在付款过程或邮件发送过程中失败了怎么办?!如果需要综合解决方案,使用SignalR组件(虽然比较复杂)

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 感谢您给我一个想法。我会试试这个。
      猜你喜欢
      • 1970-01-01
      • 2021-11-16
      • 1970-01-01
      • 2015-09-19
      • 1970-01-01
      • 2012-04-15
      • 2017-06-11
      • 2015-10-10
      • 2017-02-10
      相关资源
      最近更新 更多