ASP.NET MVC асинхронные контроллеры и активный MQ - PullRequest
1 голос
/ 28 сентября 2011

Сценарий: пользователь сохраняет заказ

Для завершения рабочего процесса заказа необходимо выполнить следующие действия:

  • Сохранить заказ в базе данных с флагом «не подтверждено».
  • Переведите заказ в Active MQ и прослушайте сообщение подтверждения, которое должно появиться в другом Q. Обычно получение сообщения подтверждения в другом Q занимает от 1 минуты до неизвестного.
  • Когда я получаю флаг обновления подтверждения вБаза данных.

Я не хочу, чтобы пользователь ждал получения подтверждающего сообщения, поэтому, как только Заказ успешно сохранен в базе данных, пользователь может перейти с веб-страницы.В настоящее время я сохраняю заказы в базу данных с помощью метода публикации Ajax и планирую вызвать действие Async, если сохранение в базу данных прошло успешно.Предполагается, что это асинхронное действие работает с Active MQ и ждет в течение неопределенного времени, пока оно не получит подтверждение.

Вопрос: Являются ли контроллеры Async правильным выбором здесь?Или я напишу службы Windows, которые опрашивают подтверждение Q и обновляют базу данных соответственно.Основная цель - уменьшить сложность и затраты на обслуживание.

...