У меня есть приложение Mvc3 с форумной областью, где вопросы можно отправлять также по электронной почте.
Процесс получения писем с разных учетных записей, их анализа и вставки в БД очень медленный.
Сначала я подумал о создании отдельной службы Windows с некоторым запланированным процессом, который будет выполнять всю отдельную обработку электронной почты каждые несколько секунд.
Я пришел к мысли, что лучшим подходом будет инициированиепроцесс проверки / анализа электронной почты, когда пользователь попадает на страницу раздела форума.Таким образом, сценарий будет:
- Пользователь открывает область форума страницы в приложении mvc
- Инициируется асинхронный процесс, который будет выполнять все медленные вещи, процесс может быть инициированчерез вызов jquery / javascript к контроллеру при загрузке страницы.
- Контроллер будет вызывать службу парсинга электронной почты и немедленно вернется (запустить и забыть).
- Все последующие вызовы, также от других пользователей к тому же контроллеру, который инициирует обработку электронной почты, будут игнорироватьсяво время работы.
- Когда процесс будет завершен, также, если пользователь находится на другой странице, он будет уведомлен, если появятся новые вопросы, и в конечном итоге страница будет обновлена (всегда с помощью вызова jquery).
Есть ли лучшие подходы или какие-либо возможные потери производительности для этого подхода?Должен ли я пойти с отдельной службой Windows?