在asp.net MVC中实现调度的最好方法是什么?

本文关键字:方法 是什么 调度 net asp MVC 实现 | 更新日期: 2023-09-27 18:07:24

我有一个asp.net MVC web应用程序,需要安排任务。(计划了一大块功能)
我正在使用Quartz.net作为我的调度程序,目前正在将其作为windows服务运行。集群处理负载并在高峰时段执行资源密集型任务

我面临的问题是能够安排所有需要的功能,我必须包括所有的一切在调度服务,包括所有的程序集和大部分的mvc基础(例如使用mvc视图来生成电子邮件提醒模板),所以服务成为一个复制的web应用程序与许多额外的代码,使其发挥良好。这真是一场噩梦。

所以我可以?

1)配置调度程序在asp中工作。净MVC。

2)使用寡妇服务调用所需的web页面

3)使用当前服务设计。

我的偏好可能是#1,因为这将解决上述所有问题,但是如果一段时间没有活动,web应用程序将被回收/停止,这意味着计划的作业可能不会被执行(只有在作业应该运行的时候有一些活动)。在asp.net网站中设置Quartz.net

有什么想法/建议是最好的方法或任何替代方案吗?

在asp.net MVC中实现调度的最好方法是什么?

我肯定会避免选项1。你的网站应该是请求和响应,没有别的。

如果您的服务执行的操作不是"长时间运行",并且可以合理地作为HTTP请求的请求/响应周期的一部分执行,那么选项2是合理的。这应该是一个真正的web服务,而不是web页面调用,然而(这在OpenRasta中更容易做到,它没有区分web站点和web服务)。

如果你计划的行动是密集/长时间运行,那么它应该在网站之外完成,你目前的架构可能是ok的。程序集的复制并不是真正的问题(磁盘空间很便宜)。