Я изменяю процесс покупки на сайте электронной коммерции, на котором есть возможность совершать покупки для нескольких пользователей и нескольких продуктов за одну покупку. Для совершения крупных покупок иногда может потребоваться несколько минут, и серверная часть сайта электронной коммерции заставит пользователя ждать; не лучший UX.
Я пытаюсь заставить сайт генерировать строку JSON и передавать ее API, который будет выполнять обработку покупки на другом сервере, и позволить сайту продолжить работу на Страница благодарности, не дожидаясь ответа от API. Моя проблема в том, что иногда Post не попадает в API. Я помещаю команду thread.sleep после postasyn c, и это, кажется, решает проблему на моем локальном компьютере, но меня беспокоит надежность этого решения.
TLDR; моя цель - заставить код надежно отправлять сообщения в API, не дожидаясь результата. Это то, с чем я боролся раньше, и если есть лучшая практика для достижения результата, я не смог ее найти. Любой совет будет оценен.
См. Почтовый индекс ниже; ничего особенного не происходит. Код находится внутри функции eventHandler в серверной части электронной коммерции.
using (System.Net.Http.HttpClient client = new HttpClient(new HttpClientHandler(),false))
{
var url = ConfigurationManager.AppSettings["APIURL"];
var reqBody = new StringContent(RequestData.ToString(), Encoding.UTF8, "application/json");
var task = client.PostAsync(url, reqBody);
//increases chance of post reaching API before function ends
Thread.Sleep(3000);
}