【问题标题】:Schedule task in ASP.NET MVC 5ASP.NET MVC 5 中的计划任务
【发布时间】:2014-05-31 02:21:58
【问题描述】:

我正在开发一个 ASP.NET MVC 5 应用程序。我正在使用 EF6(代码优先方法)来处理数据访问和 C#。

我有下一个场景:

我有一个名为 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....
}

此实体在我的 Web 应用程序中具有相应的控制器和视图。

角色经理的用户可以通过我的事件控制器的创建操作安排事件。创建事件后,状态属性(描述为整数值)设置为 0。

一旦 InitialDateTime 属性等于当前日期和时间,事件状态必须更改为 1。必须对 FinalDateTime 属性执行相同的操作,但将事件状态更改为 2。这两个操作必须是自动的,无需系统管理员的任何交互。

我一直在检查 FluentScheduler,它很棒,但似乎这个库只适用于预定义的任务。我需要动态地安排任务,也许我错了。

所以,我的问题是:

如何根据当前日期和时间以及给定的日期和时间间隔自动更改事件状态?

【问题讨论】:

  • 与论坛网站不同,我们不使用“谢谢”、“任何帮助表示赞赏”或Stack Overflow 上的签名。请参阅“Should 'Hi', 'thanks,' taglines, and salutations be removed from posts?.
  • 您的问题是“如何在 ASP.Net 中安排任务”(重复许多“甚至不要尝试在 IIS/ASP.Net 进程中安排长时间运行的任务”,如 stackoverflow.com/questions/6111910/…)或“如何编写触发时更改数据库中字段的代码”或其他内容?
  • 我同意@AlexeiLevenkov,不要尝试在 ASP 中安排这个任务,还有很多其他机制可以做到这一点,要么使用数据库系统,要么创建一个定期检查表的 NT 服务并设置适当的值
  • 您是否考虑过使用回调系统在InitialDateTime 触发您的ASP.NET MVC 应用程序,然后在FinalDateTime 再次触发?看看Revalee

标签: c# asp.net-mvc-5 task schedule


【解决方案1】:

查看FluentScheduler.Model.Schedule 的代码,您应该能够做到这一点:

Schedule(SomeTask).ToRunOnceAt(entity.InitialDateTime);

【讨论】:

    猜你喜欢
    • 2011-01-22
    • 2011-02-25
    • 2016-05-02
    • 2013-09-26
    • 1970-01-01
    • 2012-03-22
    • 2020-06-03
    • 2020-12-02
    • 2011-07-09
    相关资源
    最近更新 更多