0 / 0 / 0
Регистрация: 09.10.2015
Сообщений: 7
|
|
1 | |
Веб-приложение для организации уведомлений пользователей09.10.2015, 19:59. Просмотров 1013. Ответов 13
Метки нет Все метки)
(
Уважаемые форумчане!
Мне необходимо разработать веб-приложение, которое осуществляет автоматическую рассылку уведомлений по email пользователям, которые подписаны на мой новостной канал. Задача заключается в том, чтобы осуществлять рассылку этих уведомлений в бизнес-время, когда новости актуальны, пользователи гарантировано не спят и смогут увидеть полученное уведомление, а затем перейти по ссылке на интересующий их раздел на моём новостном канале. В уже существующей у меня базе данных, которую я создала на основании адресной книги своего новостной канала, находятся контакты каждого подписчика и соответствующее значение его часового пояса, т.к. мои подписчики из разных временных зон. Скажите, пожалуйста, как можно организовать следующую логику работы веб-приложения на серверной стороне? Мне необходимо, чтобы каждый пользователь в 10.00 утра по своему локальному времени получал уведомление по почте в случае, если в интересующем его разделе на моём новостном сайте появилось новое сообщение. При срабатывании триггера каждый час в веб-приложении на серверной стороне должно генерироваться событие, которое будет выбирать из моей базы данных пользователей того пользователя, в чьей временной зоне сейчас 10.00 утра. Мне непонятно как программно реализовать работу этого триггера и запуск соответствующего события? Подскажите, пожалуйста, как это можно сделать практически (в виде участка соответствующего программного кода)? Как организовать логику, чтобы на серверной стороне в веб-приложении осуществлялось срабатывание триггера каждый час и происходило определение в какой временной зоне сейчас 10.00 утра, а затем запускалось соответствующее событие по выборке из базы данных пользователей, у которых сейчас это время?
0
|
|
09.10.2015, 19:59 | |
Шифрование файлов для разных групп пользователей для веб-сайта Веб приложение для администрирования БД Веб приложение для бд mysql веб приложение для генерации |
|
0 / 0 / 0
Регистрация: 09.10.2015
Сообщений: 7
|
|
09.10.2015, 21:46 [ТС] | 3 |
Да. Время, конечно, терпит. Спасибо.
0
|
0 / 0 / 0
Регистрация: 09.10.2015
Сообщений: 7
|
|
11.10.2015, 06:38 [ТС] | 4 |
insite2012, разрешите поинтересоваться, вам удалось прикинуть как можно организовать процесс осуществления логики работы веб-приложения, описанной в моём начальном сообщении?
Заранее благодарна вам за помощь.
0
|
Модератор
![]() |
|
11.10.2015, 07:57 | 5 |
Да в общем там нет ничего сложного.
Консоль, либо, что удобнее - Windows-служба, с таймером, который отрабатывает раз в час. При каждой отработке таймера в БД посылается запрос на выборку данных пользователей с нужным временем, после чего уже срабатывает логика рассылки.
0
|
0 / 0 / 0
Регистрация: 09.10.2015
Сообщений: 7
|
|
11.10.2015, 09:05 [ТС] | 6 |
Хорошо.
Я немного уточню постановку задачи. Мне необходимо, чтобы логика работы приложения осуществлялась при помощи именно веб-приложения. Это необходимо в силу того, что это приложение должно круглые сутки крутиться на сервере и отрабатывать каждый час события по соответствующему временному триггеру. Использование подхода основанного на Windows-службе потребует, чтобы мой домашний компьютер был включен 24 часа в сутки, что для меня не приемлемо. Поэтому мне необходимо реализовать логику работы моего приложения как веб-службы, которую я могла бы разместить на любом хостинге в сети, который поддерживает работу с платформой .NET и базами данных. Здесь возникает сразу несколько вопросов. Какой тип проекта использовать в Visual Studio? Можно строить проект как обычное ASP.NET приложение или нужно использовать подход c использованием WCF? Особенность постановки моей задачи заключается в том, что мне не нужно использовать веб-методы и их вызов через WSDL. Мне нужно, чтобы веб-приложение постоянно крутилось на сервере как веб-служба и отрабатывала необходимые для меня события по временному триггеру. Мой вопрос заключается в том как конкретно можно организовать этот процесс?
0
|
Каратель
![]() |
|
11.10.2015, 10:43 | 7 |
ну так и запускайте Windows-службу на том же сервере где и хост
Добавлено через 1 минуту кто будет их вызывать и зачем? это никак не вяжется с вашей постановкой задачи
0
|
0 / 0 / 0
Регистрация: 09.10.2015
Сообщений: 7
|
|
11.10.2015, 11:34 [ТС] | 8 |
OK.
Подскажите, пожалуйста, какие компании предлагают хостинг, где в дополнении ко всем возможностям .NET платформы можно использовать ещё и запуск Windows-служб? Я понимаю, что есть облачный сервис от Microsoft Azure со всеми этим возможностями, но после одного месяца trial-использования их аккаунта я предполагаю, что они зарядят мне такую сумму за использование их услуг, что мне это влетит в копеечку. Использование веб-методов с их вызовом через WSDL у меня не предусматривается, т.к я планирую использовать уже готовый email wrapper, который берёт на себя всю работу, связанную с пересылкой email сообщений. Таким образом, мой вопрос по поводу того, как можно организовать приложение, которое будет постоянно крутиться на сервере как веб-служба и обрабатывать необходимые для меня события по временному триггеру остаётся открытым. Как можно реализовать этот подход?
0
|
2217 / 1681 / 505
Регистрация: 02.08.2011
Сообщений: 4,827
|
|
11.10.2015, 11:45 | 9 |
То есть вы уже знаете как клиенты будут подписываться на ваш новостной канал? При этом решили использовать Windows-службы.
Добавлено через 5 минут Тип приложения - Web-приложение в VS. Используйте таймер (System.Threading timer).
0
|
![]() ![]() |
|
11.10.2015, 12:26 | 10 |
Inessa_aks, В целом, ASP.NET не поддерживает отложенных заданий (по кр мере не поддерживало в предыдущих версиях, в последних вроде есть подвижки).
Но можно использовать различные хитрости, разной степени костыльности. Вот например есть такое решение http://blog.stackoverflow.com/... in-aspnet/
0
|
0 / 0 / 0
Регистрация: 09.10.2015
Сообщений: 7
|
|||||||||||
11.10.2015, 13:11 [ТС] | 11 | ||||||||||
Для своего канала (или как он в Facebook-е называется - user group) я при помощи Facebook API могу извлечь имена email моих подписчиков и их временные зоны, а затем записать их в БД, в которой находятся соответственно значения Id, email, timezone.
В случае использования веб-приложения я не могу понять как мне организовать логику механизма работы запуска событий рассылки сообщений по почте для пользователей из соответствующих временных зон. Я понимаю, что есть так называемое нулевое время по Гринвичу (или UTC - Universal Time Coordinated), от которого отсчитывается +12 часов в одну сторону и -11 часов в другую сторону. Земля вращается, и в каждой временной зоне наступает 10 am утра, в которые нужно осуществлять рассылку тем пользователям, которые находятся в этой временной зоне. Но как КОНКРЕТНО на сервере определить, что именно СЕЙЧАС 10 am в Лондоне? А через час будет 10 am по Берлину, через два часа - по Киеву, через три часа - по Москве? Допустим, я ввела перечисление, чтобы условно отображать эти временные зоны.
Текущую временную зону я получаю при помощи следующего оператора.
Условно говоря мне нужно начать рассылку в 10 am по Лондону, а затем через каждый час стартовать событие моей почтовой рассылки для UTC_OFFSET.UTC_MINUS_1 и т.д. См. https://upload.wikimedia.org/w... _Zones.png Как мне корректно организовать логику работы приложения в этом случае?
0
|
Каратель
![]() |
|
11.10.2015, 13:52 | 12 |
вы путаете понятия.
служба, она же windows service, она же unix daemon это не то же самое что и веб-служба. служба работает в фоне и что-то делает постоянно (ожидание тика таймера это тоже дело). веб-служба работает по запросу клиента. иначе говоря это таже самая служба которая ожидает запрос от клиента, есть запрос - она его выполняет, нет запроса - ничего не делает, ожидает запросы. Добавлено через 2 минуты DateTimeOffset.Now
0
|
2411 / 1866 / 337
Регистрация: 22.07.2011
Сообщений: 7,164
|
|
11.10.2015, 15:49 | 13 |
По поводу таймера: либо фоновый поток , либо запросы по таймеру средствами хостинга , грунт например.
А по поводу времени: приводите время на сервере к UTC формату , а от него , уже пляшите в соответствии с зоной клиента , приводя в ту или иную сторону. или можно обратится к сервисам точного времени.
0
|
0 / 0 / 0
Регистрация: 09.10.2015
Сообщений: 7
|
|
11.10.2015, 16:23 [ТС] | 14 |
В ходе проведения экспериментов со своим проектом в Visual Studio я столкнулась с непонятным эффектом самой Студии, которая у меня время от времени крэшила.
Я решила переустановить Visual Studio и поставить новую версию SQL Server 2014. После осуществления этой процедуры я обнаружила, что у меня куда-то пропала опция выбора "SQL Server Database" из диалогового окна добавления новой базы в проект. Подскажите, пожалуйста, в чём тут может быть дело?
0
|
11.10.2015, 16:23 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Удаление ярлыка с рабочих столов у всех пользователей в организации Веб приложение для Андроид на php Приложение для работы с веб-камерой Разработать веб-приложение для велосервиса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |