Что я мог бы использовать для автоматического создания ежедневных отчетов в моем веб-приложении?

#javascript #html #asp.net #sql-server

#javascript #HTML #asp.net #sql-сервер

Вопрос:

Я написал простое веб-приложение для создания отчетов с ASP.NET и SQL, который по сути генерирует отчет CSV, когда пользователь отправляет форму. Все это работает нормально, но мне было интересно, есть ли какой-либо способ автоматизировать процесс отправки. Например, могу ли я написать программу или демон для отправки формы или отправки данных POST на страницу каждые 24 часа и автоматической загрузки отчетов? Я не могу найти никаких инструментов для этого, но это кажется возможным. Помощь была бы очень признательна.

Комментарии:

1. Кажется, вы ответили на свой собственный вопрос в тексте вопроса. Демон / служба является одним из наиболее распространенных решений проблем такого типа.

2. Помимо того, что уже упоминалось, вы можете использовать библиотеку фоновых задач, такую как hangfire ( hangfire.io ), чтобы запланировать эти задачи для вас. Вы уже используете asp.net и sql server, так что он должен вписаться довольно легко.

Ответ №1:

«Неспецифический» характер этой генерации отчетов означает, что для этого обычно не используются инструменты. Вместо этого вы бы (как вы сказали) использовали запланированную задачу или задание cron для регулярного вызова URL-адреса. Вы также можете отказаться от консольного приложения с помощью an HttpWebRequest и просто использовать curl даже в Windows.

Ответ №2:

  1. Вы можете создать одну запланированную задачу Windows, которую мы будем запускать каждые 24 часа.
  2. Вы можете выполнить пакетный файл, используя эту запланированную задачу. Просто указав путь к пакетному файлу. Этот пакетный файл выполнит один код скрипта VB, написанный в отдельном файле.
  3. Командный файл должен содержать эту строку cscript.exe report.vbs
  4. report.vbs должен содержать следующий код:

    Const URL = «http://demo.com/auto_generate_report.aspx»
    ‘===========================================
    Const READYSTATE_COMPLETE = 4
    Set iE = CreateObject(«InternetExplorer.Application»)
    IE.Visible = True
    с IE
    .Navigate2 URL
    , пока нет .readyState = READYSTATE_COMPLETE
    wscript.sleep 1000
    Wend
    wscript.sleep 60000
    .
    Завершите
    работу, установив IE = ничего

  5. Вы можете написать логику для создания отчета при загрузке страницы страницы, которую вы вызвали с помощью запланированной задачи.