2010-12-09 46 views
2

我正在为.NET中的大型系统设计应用程序数据缓存。应用程序数据缓存 - Quartz.NET vs任务列表?

应用程序数据缓存将从多个(10+)不同的系统或数据库进行轮询。它也需要在特定的时间间隔(30分钟)刷新。

有两种选择对我来说。

第一个是使用Quartz.NET(或其他调度器框架)以一定的时间间隔触发缓存构建器。看来我可以很容易地控制配置文件中的时间间隔,并且调度非常灵活。

第二个选择是使用任务列表,其中一个或多个任务将拉取数据并构建缓存,最后一个任务将在可配置的时间段内休眠。然后我可以触发任务列表并让它运行直到应用程序关闭。

现在,我更倾向于第二种选择,我可以通过取消令牌,以便对启动和关闭过程有更多的控制。此外,单个任务可以分解来定义依赖关系,如任务层次结构。

以上哪种方式更好?有没有更好的方法?

回答

1

那么,如果它是标准的Asp.Net和SQL服务器,请探索SQLCacheDependency。其基于事件并且将在未决数据库表发生变化时触发。你不必每次轮询数据库。

+0

来源多种多样,包括(不限于)XML,SQL服务器和Oracle。 – tonyjy 2010-12-09 18:54:12

3

你正在考虑我会建议调度这两个选项,原因如下:

  1. 这件事情,你不必编写和维护自己。
  2. 调度程序可以保留调度,所以如果应用程序重新启动或重新启动,调度程序将处理它。
  3. 任务在调度程序中调用作业(无论如何在Quartz.net中),您可以将它们设置为以不同的时间间隔运行。你也可以让一个工作触发其他工作。
  4. 计划程序提供对计划和作业的编程访问权限,因此您可以根据需要暂停,添加或删除作业。