Windows Shared hosting-настраиваемая запланированная задача
У меня есть общий хостинг для windows, и мне нужно запускать некоторые запланированные исполняемые файлы c# каждый день для создания sitemap, отправки бюллетеня и т. д...
Поставщик говорит мне, что я не могу запустить исполняемый файл по соображениям безопасности. Что я могу сделать?
Провайдер предлагает мне купить VPS, но не думаю, что имеет смысл тратить больше денег только на выполнение какой-то запланированной задачи.Существует ли альтернативный путь?
5 ответов:
Реализуйте свою ежедневную задачу в asp.net страница на вашем общем сервере. Затем настройте процесс на машине, к которой у вас есть полный доступ, чтобы запрашивать эту страницу один раз в день в запланированное время.
Если обработка раз в день занимает много времени, то вы можете сделать это в потоке, созданном страницей. Это остановит тайм-аут запроса.
Чтобы предотвратить злоупотребление, вы можете дать странице неясное имя, ограничить доступ через ip-адрес (если панель управления общего сервера позволяет это), и / или требовать аутентификации в процессе запроса. Страница также может хранить время последнего запроса в кэше и выполнять необходимую обработку только в том случае, если с момента последнего запроса прошло достаточно времени.
Джефф Этвуд создал запись в блоге по этому поводу.
Короче говоря:
- добавить элемент в кэш
- Сделайте так, чтобы он истек на вашем желаемом интервале
- Добавьте триггер для выполнения по истечении срока действия кэша
- повторно добавьте свой элемент в триггер
Я бы сначала рассмотрел решение от Энди, кажется, им легче управлять.
Вы можете использовать ATrigger службу планирования на общем хостинге просто. Библиотека.Net также доступна для создания запланированных задач без накладных расходов. Также у вас есть панель отчетов для перечисления задач и регистрации всех возможных ошибок.
Отказ от ответственности: я был среди команды ATrigger. Это бесплатная программа, и у меня нет никакой коммерческой цели.
Это не идеально,но вы можете унаследовать все ваши страницы от базовой страницы (страницы, которая наследует систему.Сеть.ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС.Страница и последующие страницы наследуют от этого), и на каждой загрузке страницы (в базовой странице) вы можете проверить таблицу базы данных задач, которые должны выполняться на определенных временных интервалах. Если при заданной загрузке страницы задача, которая должна быть запущена, выбрана в заданное время, и это соответствует (или уже прошло) запрошенной странице, вы можете запустить ее в это время.
Это, к сожалению, зависит на веб-сайте пользователь посещает ваш сайт в то время или почти в то время, когда вы хотите запустить задание. Кроме того, еще один недостаток будет заключаться в том, что пользователь, запросивший страницу, может ждать, если ваша работа выполняется синхронно с выполнением остальной части страницы.
Надеюсь, это поможет.
В общей панели хостинга есть задачи по расписанию. http://pasteboard.co/2oBUrVeM.png
Вы можете вызвать url-адрес вашего метода действий, который отправляет электронные письма.