0

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

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

@感谢 patryk-wiek 评论,我在这里找到了带有“Task Scheduler MVC”键的解决方案。 https://github.com/jgeurts/FluentScheduler

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

4

3 回答 3

3

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

创建一个 Windows 服务来执行这些任务。

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

于 2013-10-07T08:01:25.497 回答
0

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

使用 windows scheduler、WCF 服务或一些工作流解决方案来记录运行任务。

于 2013-10-07T08:06:50.100 回答
0

您可以通过为相同的窗口服务创建相同的窗口服务来使用 RX。因为我在下面附加了一个示例代码,该代码将首先 suscibe 并且将以 2 分钟的定期间隔执行操作。:-

 Observable.Generate(
                true,
                _ => true,
                i =>
                {
                   ////your code...

                    return i;
                },
                i => i,
                _ => TimeSpan.FromMinutes(2)).Subscribe();
于 2013-10-07T08:00:25.863 回答