Расписание задачи в ASP.NET MVC 5

Я разрабатываю приложение ASP.NET MVC 5. Я использую EF6 (подход Code First) для обработки доступа к данным и С#.

У меня есть следующие сценарии:

У меня есть объект с именем Event со следующей структурой

public class Entity{
    public int Id{get; set;}
    public DateTime InitialDateTime{get; set;}
    public DateTime FinalDateTime{get; set;}
    public int Status {get; set;}
    // Another properties....
}

У этого объекта есть соответствующий контроллер и представления в моем веб-приложении.

Пользователи с ролью Менеджер могут планировать события с помощью действия "Создать" моего контроллера событий. После создания события свойство статуса (описанное как целочисленное значение) устанавливается равным 0.

Статус события должен измениться на 1, как только свойство InitialDateTime станет равным текущей дате и времени. Ту же операцию необходимо выполнить со свойством FinalDateTime, но с изменением статуса события на 2. Эти две операции должны выполняться автоматически, без какого-либо вмешательства системного администратора.

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

Итак, мой вопрос:

Как я могу автоматически изменить статус события в зависимости от текущей даты и времени и заданных дат и временных интервалов?


person Evan    schedule 31.05.2014    source источник
comment
В отличие от форумов, мы не используем слова «Спасибо» или «Любая помощь приветствуется» или подписи на Stack Overflow. См. раздел "Привет", "спасибо" слоганов и приветствий удалить из постов?.   -  person John Saunders    schedule 31.05.2014
comment
Ваш вопрос о том, как планировать задачи в ASP.Net (дубликаты многих даже не пытаются планировать длительную задачу в процессе IIS/ASP.Net, например stackoverflow.com/questions/6111910/) ИЛИ как написать код, который при запуске изменяет поля в БД или вообще что-то другое?   -  person Alexei Levenkov    schedule 31.05.2014
comment
Я согласен с @AlexeiLevenkov, не пытайтесь планировать эту задачу в ASP, для этого есть много других механизмов, либо используйте систему БД, либо создайте службу NT, которая будет периодически проверять таблицу и устанавливать соответствующие значения   -  person 3dd    schedule 31.05.2014
comment
Действительно, я согласен с вами обоими. Мое приложение MVC - это просто механизм представления. Нет ни логики, ни вопросов. Я обрабатываю запросы, запросы и ответы в другом проекте. Я рассматривал возможность использования триггеров, к сожалению, EF6 не поддерживает триггеры.   -  person Evan    schedule 31.05.2014
comment
Рассматривали ли вы возможность использования системы обратного вызова для запуска приложения ASP.NET MVC точно в InitialDateTime, а затем снова в FinalDateTime? Взгляните на Revalee.   -  person László Koller    schedule 04.06.2014
comment
@László Koller, я попробую это как последний вариант :)   -  person Evan    schedule 04.06.2014
comment
Возможный дубликат как запланировать задачу в MVC4 C#?   -  person Andreas Bergström    schedule 23.10.2017


Ответы (1)


Глядя на код для FluentScheduler.Model.Schedule, он выглядит так: вы должны просто быть в состоянии сделать это:

Schedule(SomeTask).ToRunOnceAt(entity.InitialDateTime);
person Sean Vieira    schedule 31.05.2014