Я создаю веб-сервис .NET, который будет использоваться приложением поставщика, и я не уверен, как выполнить следующее:
- Продавец позвонит на мою веб-страницу с некоторой информацией, но хочет быстро получить подтверждение, просто сообщив, что я получил их информацию. Им все равно, что я с ним сделаю, и не хотят подтверждения, что я закончил обработку.
- Информация, которую мне передали, должна сделать что-то негласное и воздействовать на информацию чувствительным ко времени образом, то есть предпринять некоторые действия в течение нескольких минут. Я буду связываться с рядом других веб-сервисов, а также выполнять некоторые работы с базой данных. Очевидно, это будет после того, как я ответил «Успех» вызывающему приложению.
У меня нет контроля над тем, как поставщик обращается к моему сервису, и метод, который они используют для вызова этого сервиса, является синхронным, поэтому мне нужно быстро ответить, чтобы вызывающее приложение продолжало свою работу. На мой взгляд, есть два варианта, хотя я открыт для других:
- Поскольку вызывающее приложение по сути отправляется в очередь, чтобы процесс, который я написал, мог его обработать, я могу заставить веб-службу просто отправить элемент в базу данных (или в MSMQ, или в другую очередь) и затем вернуть успех , Процесс очереди получит оттуда обработку.
- В идеале я представлял, что мой сервис может вернуть «Успех», а затем просто продолжить обработку самостоятельно, но я не уверен, возможно ли это. Поскольку моя обработка зависит от времени, запуск серверной обработки нового запроса идеален, поэтому время ожидания минимально.
Есть ли другие идеи или одна из них звучит предпочтительнее?