2013-05-18 1 views
0

У меня есть приложение, написанное на C# ASP.Net MVC4 и работающее на веб-сайте Windows Azure. Я хотел бы написать услугу/задание, чтобы выполнить следующее:
1. Прочитать информацию о пользователе из базы данных веб-сайта
2. Сконфигурировать данные о действительных действиях на сайте
3. Создать сообщение электронной почты HTML, которое включает в себя сводку для каждой учетной записи пользователя
4. Периодически отправлять такие письма каждому пользователю
Периодические уведомления по электронной почте (Windows Azure .Net)

Я новичок в Windows Azure Cloud Services, и хотел бы знать, лучший подход/решение для достижения выше.

Основываясь на моем исследовании до сих пор, я вижу, что независимая роль рабочих облачных служб, а также SendGrid и Postal будет лучше всего подходит. Пожалуйста, предложите.

+0

Мы сделали именно это, за исключением использования самодельного автора писем, а не Postal. Это работает хорошо. Ты на правильном пути. –

ответ

1

Вы на правильном пути, но ... Помните, что роль рабочего (или веб-роль) в основном является планом для Windows Server VM, и вы запускаете один или несколько экземпляров этого определения роли. И эта виртуальная машина, как и Windows Server, работающая локально, может выполнять одновременно несколько задач. Итак ... нет необходимости создавать отдельную рабочую роль только для ежедневных электронных писем. Подумайте об этом: в течение почти часа он будет сидеть без дела, и вы будете платить за него (для многих случаев роли, которую вы запускаете, и вы не можете отбросить ее до нуля - вам всегда понадобится минимум один пример).

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

Одна вещь, которую вам нужно будет сделать, независимо от отдельной роли или многократно используемой роли: будьте готовы к нескольким экземплярам. То есть: если у вас есть два экземпляра ролей, они оба будут запускать код для проверки каждый час. Поэтому вам понадобится схема, чтобы оба экземпляра не выполняли одну и ту же задачу. Это можно решить несколькими способами. Например: используйте сообщение о очереди, которое остается невидимым в течение часа, а затем появляется, и ваш код будет проверять, может быть, каждую минуту для сообщения о очереди (и первый, кто получает его, получает почасовой материал). Или, возможно, запустите quartz.net.

-1

Я не знал почты, но, похоже, правильная комбинация для использования.