【问题标题】:Prevent API push from running multiple times while saving防止 API 推送在保存时多次运行
【发布时间】:2019-11-07 14:00:17
【问题描述】:

我们的订单完成后,我们希望将它们推送到我们的 ERP。我们把它工作到今天,但我们有一个问题,那就是可以多次推送。

public HttpResponseMessage Update(Order order) {
    if(order.Id > 0 && order.PushedToErp == false)
        order.PushedToErp = _erpService.PushToErp(order);

    _unitOfWork.Orders.Update(order);

    return Request.CreateResponse(HttpStatusCode.OK, order);
}

此代码的问题是,如果推送需要很长时间并且用户刷新页面并再次保存订单,则由于尚未设置布尔值,订单将被推送两次。

有什么办法解决这个问题吗?

【问题讨论】:

    标签: c# database ef-code-first saving-data


    【解决方案1】:

    您无法控制客户端等待请求完成的时间。

    如果这个调用需要很长时间,你应该转移到一个负责完成这项工作的工作进程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-18
      • 2017-10-30
      • 1970-01-01
      • 1970-01-01
      • 2012-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多