0

我们正在开发一个从 WCF 服务检索数据的 ASP.Net 应用程序。

用户界面(使用 JQM 和 ASP.NET 开发)在处理请求并且数据在服务器端分页时显示一个加载面板,因此我们的 db 仅返回每个请求的前 n 条记录。

在这种情况下,用户执行搜索,直到他浏览页面,我们希望预取接下来 n 个页面的结果以存储在 RAM 缓存对象中以避免延迟。

为此,我们使用quartz.net 创建了一个计划进程,每3 秒触发一次,它检查FIFO 队列以请求后续页面的数据。Scheduled JOB 配置为允许quartz.net 执行并发执行,quartz.net 设置为最多使用10 个线程。

在您看来,这是一个好方法吗?

可能是哪些问题?

密集使用作业(每 3 秒触发一次)和最终线程会导致应用程序不稳定吗?

基于 FileSystemWatcher 触发器的解决方案会更好吗?

4

1 回答 1

0

我假设您无法避免用户第一次搜索时的延迟。在这种情况下,您可以发出 ajax 请求来缓存后续请求的数据。

如果您使用的是经典的 asp.net,则此链接讨论在 asp.net http://weblogs.asp.net/craigshoemaker/archive/2008/11/07/using-jquery-to-call-asp-net中进行 ajax 调用-ajax-page-methods-by-example.aspx

如果您决定使用石英,那么您需要将其嵌入到 asp.net 应用程序中,这是一个开销。

于 2013-01-31T21:27:46.410 回答