我正在为.NET中的大型系统设计应用程序数据缓存。
应用程序数据缓存将从多个(10+)个不同的系统或数据库进行轮询。它还需要以一定的间隔(30分钟)刷新。
我有两种选择。
第一个是使用Quartz.NET(或其他调度程序框架)以特定间隔触发缓存构建器。我似乎可以轻松控制配置文件中的间隔,并且调度非常灵活。
第二个选项是使用任务列表,其中一个或多个任务将提取数据并构建缓存,最后一个任务将在可配置的时间段内休眠。然后我可以触发任务列表并让它运行直到应用程序关闭。
现在,我更倾向于第二个选项,我可以传递取消令牌,这样就可以更好地控制启动和关闭过程。此外,可以分解单个任务以定义任务层次结构等依赖关系。
以上哪种方式更好?有没有更好的方法?
答案 0 :(得分:3)
在您考虑的两个选项中,我建议使用调度程序,因为:
答案 1 :(得分:1)
如果它是标准的Asp.Net和SQL服务器,请探索SQLCacheDependency。它的事件基于并且将在不当数据库表发生更改时触发。你不必每次轮询数据库。