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
这是否是一个好的解决方案?我认为编写窗口服务对我来说有点矫枉过正?
不要在你的 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 服务或某些工作流解决方案来执行日志运行任务。