【问题标题】:How to execute action at exact time once a day如何每天一次在准确的时间执行动作
【发布时间】:2012-05-04 21:07:19
【问题描述】:

我必须每天执行一次操作。如果他们自己没有完成,这是最终用户的工作时间。

用户可以通过点击Controller中执行ActionResult的按钮来结束他们的时间:

[HttpPost] 
[Authorize] 
public ActionResult EndWork(...) 
{ 
    ... 
} 

我怎样才能在每天午夜自动运行这样的操作?我必须为此使用任务计划程序或 Windows 服务吗?我无法在数据库上设置触发器,因为 EndWork() 将记录插入到数据库中。 我有一个 MVC 3 网站。

非常感谢任何帮助!

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-3 scheduling


    【解决方案1】:

    您可以使用以下内容:

    1. 编写一个 Windows 服务来监视您的数据库并执行操作。

    2. 日程安排请见Quartz .Net

    【讨论】:

      【解决方案2】:

      您可以使用诸如Quartz.NET 之类的内容来安排活动。你可以看看如何开始here

      【讨论】:

        【解决方案3】:

        你不能只使用 Windows 计划任务 - 创建一个 *.exe 并将任务设置为每晚午夜运行 exe 吗?或者将计划任务指向一个 bat 文件,该文件启动一个脚本来执行您需要的操作?

        【讨论】:

          【解决方案4】:

          您可以使用 if 语句。将它与计时器一起使用,以便它检查一天中的当前时间,如果它满足条件,那么它会执行您分配给它的任何操作。

          【讨论】:

          • @Faisal 不要仅仅因为它是一个糟糕/无用的答案而破坏它。投反对票、发表评论,或者将其标记为删除。
          • @AndrewBarber 一段时间以来,他一直在破坏和发送随机帖子。我一直在回复他们并试图弄清楚如何举报他。
          • @Corbin 标记他破坏的帖子之一并使用“其他”字段并在描述中非常清楚地表明您正在报告其中一位编辑而不是海报。模组会处理它。另请注意,它是一种模式,而不仅仅是一次性的。
          • @AndrewBarber 事情就是这样......我以前标记过 cmets 和答案,但我从未标记过编辑,我什至不确定我是否可以。我在任何编辑旁边的任何地方都看不到小标志或标志按钮。不过我会继续寻找。
          • @Corbin 你不能标记编辑;您将标记问题/答案 Faisal 已破坏并在“其他”字段中解释您报告 Faisal Khan 破坏,而不是海报。我已经在这里标记了他。对旗帜要有耐心;标志队列中通常有超过一百个帖子。
          猜你喜欢
          • 2012-08-09
          • 1970-01-01
          • 1970-01-01
          • 2010-11-25
          • 2013-01-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多