重复(每日,每周,每月)的任务使用什么? 工作stream,Windows服务,别的?

我已经写了一段时间的Windows服务,他们似乎总是工作得很好,需要每天运行,一周几次,一个月一次等等,但我一直在考虑使用Windows Workflow Foundation 。

但是,我不确定他们如何运行在没有一些容器应用程序(例如SharePoint)的服务器上? 我之前和Sharepoint工作stream一起工作过,我总是遇到很多问题,首先是工作stream体系结构实现中的错误(睡眠和延迟问题),后来他们最终开始工作时,很难pipe理和改变。

另一方面,Windows服务总是很容易实现,很容易为它们创build一个设置并安装它们,而且它们总是很有弹性(它们经常工作几个月而不会崩溃或出现其他问题)。

你有什么build议? 请记住,我们正在使用.NET(版本是没有问题的,如果4.0带来了一些新的东西,我们可以使用它)。

我们经常选择使用Windows服务。 对于定期和计划任务,我们使用Quartz.Net库。 当这些任务是冗长的阻塞操作时,我们也包含了SmartThreadPool库。 我们让Quartz创建一个工作,并将其粘贴到SmartThreadPool中执行(因为我们在Quartz中遇到了长时间运行的作业触发不当的问题,也因为我们有时想将不同类型的作业分离到不同的线程池中执行)。

你有没有看过Windows计划任务? 这不是新的,但它允许你建立一个可以在特定的日期/时间运行的应用程序。 调度程序提供了很多类似于Windows服务的定制。 MSDN文章