Веб-приложение MVC .NET, которое делает что-то каждую неделю - PullRequest
1 голос
/ 14 июня 2011

Я создаю веб-приложение с использованием MVC3 .NET

Приложение должно каким-то образом вести еженедельный список задач для каждого пользователя.По пятницам все списки дел должны быть сброшены.

Может кто-то помочь с этим.

спасибо

Ответы [ 3 ]

2 голосов
/ 14 июня 2011

Вы можете взглянуть на Quartz.NET .При этом виновником обработки запланированных заданий веб-приложением является то, что веб-сервер может выгрузить это приложение ASP.NET при некоторых обстоятельствах (порог памяти или ЦП достигнут, приложение не используется в течение длительного времени, ...).По этой причине рекомендуется разработать отдельный процесс, который будет выполнять эти задачи.Этот процесс может быть размещен, например, в службе Windows, которая гарантированно будет работать постоянно.

Другая возможность состоит в том, чтобы просто использовать планировщик Windows для запуска какого-либо пользовательского исполняемого файла на еженедельной основе, что потребуетзабота о выполнении необходимых задач.

1 голос
/ 14 июня 2011

Ожидаете ли вы, что приложение всегда будет работать? Что делать, если никто не использует его в полночь между четвергом и пятницей? Как вы можете выполнить эти задания?

в целом, поскольку веб-приложение не всегда работает в определенный момент времени, вы не можете полагаться на таймеры внутри веб-приложения.

Я думаю, что лучшим решением в этом случае было бы создание службы Windows, которая будет установлена ​​на сервере и всегда будет работать по определению ... немного похоже на переизобретение одних и тех же вещей снова и снова ...

или вы также можете установить запланированное задание в окнах для вызова вашего веб-приложения, создавая запрос на определенную страницу каждую пятницу, затем веб-приложение вызывается с некоторыми параметрами, и вы можете делать то, что вам нужно.

1 голос
/ 14 июня 2011

Если это какая-то задача уровня базы данных, то, возможно, запланированная задача (или crontab в nix).Для этого нет необходимости в MVC.Если вы действительно хотите, запланированное задание может просто попасть на маршрут на веб-сайте.

Однако лично я бы просто разделил данные с номером недели (илидата начала), поэтому, когда я получаю данные, я получаю данные за неделю, начиная с (ваша дата).Тогда:

  1. делать нечего
  2. у вас есть доступ к истории по мере необходимости

т.е. добавить StartDate (или аналогичный) в виде столбцана вашем существующем хранилище, и используйте это, чтобы выбрать наиболее своевременные данные.Вы будете получать вызовы о том, «мне нужны данные с прошлой недели» - вы могли бы также встроить их с самого начала.Кроме того ... если в пятницу что-то не сделано, это не значит, что оно перестает существовать ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...