ASP MVC3, служба уведомлений по электронной почте

У меня есть веб-приложение (asp.net mvc3, .net 4), и я пытаюсь реализовать службу уведомлений по электронной почте.

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

Я не уверен, как это должно быть реализовано, должен ли быть какой-то фоновый поток, который постоянно проверяет базу данных? Я чувствую, что это будет неэффективно.

Можете ли вы предложить некоторые способы сделать это?


person ljustin    schedule 21.05.2012    source источник


Ответы (2)


Вам понадобится служба или запланированное задание, которое запускается где-то в системе (я делал это раньше; у меня был виртуальный хостинг, и я написал небольшое приложение, которое я запланировал периодически запускать на своем домашнем компьютере). Вы можете либо заставить этот процесс делать уведомления за вас, либо выполнить действие на вашем контроллере, которое вызовет их отправку.

Кажется, что служба, запрашивающая вашу базу данных и отправляющая уведомления, является самым прямым путем. Однако есть несколько причин, по которым действие в вашем приложении MVC может быть более подходящим, например отсутствие удаленного доступа к базе данных или SMTP-серверу.

Вы можете запланировать задание для выполнения приложения (например, консольного приложения или, возможно, CURL) с помощью планировщика заданий Windows или ему подобных. Или вы можете использовать что-то вроде Quartz.net, чтобы создать собственный сервис для выполнения заданий.

person moribvndvs    schedule 21.05.2012

Это не правильный подход. Вам следует создать консольное приложение и периодически запускать его с помощью встроенной задачи планировщика.

В качестве дополнительной справки ознакомьтесь с этим. Сообщение от Айенде Рахиен

person Claudio Redi    schedule 21.05.2012