-2

Существует веб-приложение ASP.net C#, через которое мы можем получить адреса получателей, часовой пояс и их данные SMT-сервера в базу данных. У меня есть два требования: 1. Рассмотрим таблицу в базе данных. Когда в таблице происходит изменение таблицы, необходимо отправить электронное письмо. Это нормально, если мы можем постоянно проверять базу данных каждые 5 минут. Было бы здорово, если мы можем отправить его мгновенно, но задержка в порядке. 2. Отправка электронной почты автоматически в 12 часов утра в соответствующий часовой пояс.Как отправить автоматические рассылки по электронной почте

Я знаком с программированием на C#. Но это новый способ автоматического планирования. Это может звучать как основной вопрос, но было бы здорово, если бы вы могли помочь. Каков наилучший способ реализации этого - веб-api или веб-службы или службы WCF или Windows или комбинация веб-api и планировщика задач? Пожалуйста, поделись своими мыслями. Также небольшой совет о том, как реализовать это, будет замечательным.

+0

Периодические фоновые задачи лучше всего выполнять службами Windows или запланированными консольными приложениями. – David

+0

Почему у вас нет настройки триггера в таблице, так что все, что меняется на этой конкретной таблице, вы автоматически генерируете и отправляете электронное письмо. Это на самом деле очень простая задача. не тратьте время на объединение базы данных каждые 5 минут для чего-то такого основного. Или вы можете создать задание, которое выполняется в 12 утра на основе временной отметки, проверяющей столбец с временным полем измененного и т. Д. ... все еще очень простая задача для выполнения – MethodMan

+0

@MethodMan Триггер в базе данных, которая выполняет скрипт/CLR? Кажется, немного переборщил, мне. – Rob

ответ

1

У вас есть возможность настроить триггер, но я ненавижу этот подход, так как он добавит накладные расходы на вставку вашего табличного буфера и на самом деле не нужен. Я думаю, что вы на правильном пути, думая о пуле. Существует небольшая небольшая библиотека в .net, называемая hangfire, которую я считаю очень полезной для выполнения запланированной задачи. Он имеет довольно сложные отчеты и почти все время работает очень хорошо. Вы можете попробовать. Но если вы хотите контролировать вещи, лучше писать небольшую услугу Windows не так уж плохо. Я думаю, что создание websevice с использованием webapi или wcf немного переборщило и может не соответствовать цели.

+0

спасибо. Если мне нужно реализовать метод web api. Я предполагаю, что единственный способ сделать это - в сочетании с консольным приложением/службой Windows для отправки почтового запроса. Это верно ? и эта служба Windows также должна проверять базу данных каждые 5 минут. Поэтому вы сказали, что это перегиб? я понял это правильно? – Lalli86

+0

Да и нет. Консольное приложение с комбинацией метода веб-API немедленно выполнит инструкции по отправке электронной почты и может засорить ваш сервер. Все, что я хотел сказать, что у вас должна быть какая-то система очередей (в виде работы с огнем или даже в очереди msmq), где вы можете просто отправить сообщение, чтобы отправить электронное письмо и сделать с ним. Теперь некоторые другие службы могут читать из этой очереди и отправлять по электронной почте один за другим в качестве фонового процесса. Звучит это ясно – qamar

+0

Да Qamar. Я вижу, что это может засорить сервер. Как насчет запланированных писем, которые должны быть отправлены в 12 утра. – Lalli86

Смежные вопросы