2

我正在为 .NET 中的大型系统设计应用程序数据缓存。

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

我有两个选择。

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

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

现在,我更倾向于第二个选项,我可以传入取消令牌,这样可以更好地控制启动和关闭过程。此外,可以分解单个任务以定义依赖关系,例如任务层次结构。

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

4

2 回答 2

3

在您正在考虑的两个选项中,我会推荐一个调度程序,因为:

  1. 这是您不必自己编写和维护的东西。
  2. 调度程序可以保留调度,因此如果应用程序重新启动或您重新启动,调度程序会处理它。
  3. 这些任务在调度程序中称为作业(无论如何在 Quartz.net 中),您可以将它们设置为以不同的时间间隔运行。您还可以让一项工作触发其他工作。
  4. 调度程序提供对计划和作业的编程访问,因此您可以根据需要暂停、添加或删除作业。
于 2010-12-10T00:29:40.490 回答
1

好吧,如果它是标准的 Asp.Net 和 SQL 服务器,请探索 SQLCacheDependency。它是基于事件的,并且会在底层数据库表发生变化时触发。您不必每次都轮询数据库。

于 2010-12-09T18:43:20.567 回答