选择调度机制

时间:2012-04-16 15:52:02

标签: .net windows-services scheduled-tasks

作为依赖于互联网不同数据源的网络应用程序的一部分,我需要创建一个通过网络从不同位置提取数据的组件,并使其可用于我的网络应用程序。 它有一个要获取的资源列表,以及每个资源的不同时间。例如,它需要每1小时提取一次RSS提要,并且每30分钟调用一次REST API。

我已经实现了提取部分。我现在正在徘徊如何实现调度部分。

我知道我可以使用Windows计划任务或Windows服务,我已经阅读了有关此主题的答案,但他们一般都在说。 我在徘徊你认为最适合我的具体情况。 (欢迎其他选择) 另外,您如何建议实施该解决方案。

由于

2 个答案:

答案 0 :(得分:1)

尝试Quartz.Net

答案 1 :(得分:0)

我在类似情况下经常看到的错误是尝试将所有内容都放在同一个Web应用程序中。假设你的数据"从不同的地方拉出来#34;是扁平和简单的,所以它可以存储到文件系统或数据库(相对于必须驻留在内存中的这种性质 - 例如复杂的互连对象图),我会使你的"爬虫& #34;一个单独的过程。

现在,如果该过程是一个简单的命令行,由Windows任务计划程序激活,或者由Quartz.Net激活的Windows服务激活,那么它真的取决于它每次启动时需要初始化的内容以及如何经常需要醒来。要给出两个极端,如果它每天运行一次,请将其设为命令行应用程序。如果它每5秒运行一次,启动并JIT所有代码需要3秒钟,请将其作为Windows服务。如果您希望用户激活它并且其响应时间必须是即时的,请再次将其作为Windows服务。

您总是可以从命令行开始,并在需要时转移到服务,您不必重新实现很多,如果您将处理和计划部分分开,您的体系结构将变得更简单,是命令行方法迫使你。