Как вызвать "Результат действия" ASP.NET MVC в определенное время (ежедневно)
У меня есть система отправки электронных писем пользователям к определенному времени. встроенный в ASP.NET MVC4 и имеет "функцию" результата действия для проверки времени сообщений и отправки его, если день сообщения сегодня.
Как я могу назвать этот результат действия (ежедневно), как планировщик, эффективным способом?
Благодарю.
3 ответа
Хотя отдельный сервис / приложение было бы лучше, вы можете использовать wget.
GNU Wget - это бесплатный программный пакет для извлечения файлов с использованием HTTP, HTTPS и FTP, наиболее широко используемых интернет-протоколов. Это неинтерактивный инструмент командной строки, поэтому его легко вызывать из сценариев, заданий cron, терминалов без поддержки X-Windows и т. Д.
Затем вы бы сделали что-то вроде:
"C:\Program Files (x86)\GnuWin32\bin\wget.exe" --no-check-certificate https://www.exammple.com/YouController/YourAction -O NUL
в .bat
файл и установите его для запуска через запланированное задание Windows в нужное время (при условии, что вам не нужно запускать его каждые 60 секунд - если вы это сделаете, дайте мне знать, поскольку у меня есть другой способ обойти это с помощью службы Windows вместо этого вызвать файл bat).
Опуская -O NUL
part также сохранит вывод, чтобы вы могли увидеть, все ли прошло успешно, выполнив:
public ActionResult YourAction()
{
//Do your code, get some stats that show it ran properly.
return Content("Return your stats here.");
}
от вашего действия контроллера.
Вы можете создать небольшое консольное приложение, которое просто вызывает API и отправляет электронные письма. Затем вы можете запланировать запуск приложения консоли в определенное время с помощью планировщика Windows; Вы даже можете запустить его без отображения окна консоли. Смотрите здесь или здесь для деталей о том, как запланировать задачу.
Более эффективным будет создание нового приложения в качестве службы Windows. Там вы можете легко установить код для запуска в определенное время. в этом решении у вас будет больше гибкости и независимости. Вы можете начать пользоваться: Windows Service для запуска функции в указанное время
Используйте функции Azure, это именно то, для чего он был создан. Это действительно хорошо.
https://docs.microsoft.com/en-us/azure/azure-functions/functions-overview