2011-09-05 115 views
2

我有一个需要调度任务的asp.net MVC web应用程序。 (预定了大量功能)
我正在使用Quartz.net作为我的调度程序,并且当前正在将其作为Windows服务运行。 集群来处理负载和执行资源密集型任务在非高峰时间什么是在asp.net中实现调度的最佳方式MVC

我面临的问题是要能够安排所有需要的功能,我必须包括所有的调度服务,包括所有的组件和大多数的MVC (例如,使用MVC视图来生成电子邮件提醒模板),这样服务就会成为Web应用程序的重复,并带有许多额外的代码以使其发挥出色。这变成了一场噩梦。

那么我可以吗?

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

2)使用调用所需网页的Widows服务。

3)使用当前的服务设计。

我的偏好可能是#1,因为这将解决上述所有问题,但在Web App将得到回收/停止,如果有一段时间没有活动,这意味着,预定作业不(仅执行如果在工作应该运行的时候有一些活动)。 Quartz.net setup in an asp.net website

任何想法/建议哪个是最好的方法或任何替代品?

+0

检查在线服务在onlinecronservices.com – Kizz

回答

3

我一定会避免选项1.你的网站应该是请求和响应,没有更多。

如果您的服务执行的操作不是“长时间运行”,并且可以作为HTTP请求的请求/响应周期的一部分合理执行,则选项2是合理的。这应该是一个真正的Web服务而不是网页调用,然而(这在OpenRasta中更容易实现,它不会区分网站和Web服务)。

如果您的计划操作是密集/长时间运行,那么应该在网站之外完成,您当前的架构可能没问题。程序集的复制不是一个真正的问题(磁盘空间很便宜)。

+0

感谢您的回复,它不只是复制程序集,它的缓存和一大堆不需要的代码 – rqmedes

+1

在这种情况下,问题更可能出现在程序集的组织中。我可能会考虑重新组织这些组件,这样可以有效地重复使用这些通用部件,而不会带来太多的行李。 –

+0

单独为第一句话+1。 MVC应用程序没有业务运行计划任务。 –

相关问题