Предотвращение многократного запуска API в процессе сохранения - PullRequest
0 голосов
/ 07 ноября 2019

После того, как наши заказы завершены, мы хотим отправить их в нашу 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);
}

Проблема с этим кодом заключается в том, что если нажатие занимает много времени, а пользователь обновляет страницу иснова сохраняет ордер, ордер будет сдвинут дважды, поскольку bool еще не установлен.

Есть идеи, как решить эту проблему?

1 Ответ

0 голосов
/ 07 ноября 2019

Вы не можете контролировать время ожидания клиентом завершения запроса.

Если этот вызов занимает много времени, вы должны перейти к рабочему процессу, который будет отвечать за выполнение этой работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...