MVC 3 - 在间隔时间执行一些任务

本文关键字:执行 任务 时间 MVC | 更新日期: 2023-09-27 18:34:15

我正在开发一个带有 ASP.NET MVC3的Web应用程序。要求是:在某个时间间隔(凌晨 0:00 或晚上 10:00),应用必须自动执行一些任务,例如:更改数据库中的订单状态、向客户发送通知电子邮件、清除临时文件夹......

我正在考虑在 Global.aspx 中使用线程,让它运行并休眠 24 小时,但我认为这不是一个好的解决方案。

@Thank patryk-wiek 评论,我在这里找到了带有"任务计划程序 MVC"键的解决方案。https://github.com/jgeurts/FluentScheduler

这是否是一个好的解决方案?我认为编写窗口服务对我来说有点矫枉过正?

MVC 3 - 在间隔时间执行一些任务

不要在你的 Web 应用程序中执行此操作,因为你可能无法控制主机进程何时超时和消失!

创建 Windows 服务以执行这些任务。

http://msdn.microsoft.com/en-us/library/d56de412.aspx

您可以通过

为相同的窗口服务来创建相同的RX..因为我在下面附加了一个示例代码,该代码将首先进行,并将以2分钟的固定间隔进行操作。

 Observable.Generate(
                true,
                _ => true,
                i =>
                {
                   ////your code...
                    return i;
                },
                i => i,
                _ => TimeSpan.FromMinutes(2)).Subscribe();

不要在 Web 应用程序内执行此操作,因为 AppPool 可以随时终止。有一些方法可以防止这种情况,但它不是很干净的解决方案。

使用 Windows 计划程序、WCF 服务或某些工作流解决方案来执行日志运行任务。